| Task: | Merkkijono |
| Sender: | Yytsi |
| Submission time: | 2017-10-12 13:31:49 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.05 s | details |
| #2 | ACCEPTED | 0.05 s | details |
| #3 | ACCEPTED | 0.05 s | details |
| #4 | ACCEPTED | 0.05 s | details |
| #5 | ACCEPTED | 0.05 s | details |
| #6 | ACCEPTED | 0.05 s | details |
| #7 | ACCEPTED | 0.04 s | details |
| #8 | ACCEPTED | 0.05 s | details |
| #9 | ACCEPTED | 0.05 s | details |
| #10 | ACCEPTED | 0.06 s | details |
Code
/*
Written by, Tuukka Yildirim.
input: s.
The algorithm for this challenge is very trivial, since <s> contains at most, 1000 characters.
We find sequences, that contain over one consecutive characters, and delete them accordingly.
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
string inp;
getline(cin, inp);
int len = static_cast<int>(inp.size());
vector<char> chars(inp.begin(), inp.end());
int index = 0;
while (index < (len - 1))
{
// 012345
// CAACCB => B
// ABCDDCBA => null
char currentChar = chars[index];
char nextChar = chars[index + 1];
//cout << "Index: " << index << "\n";
//cout << "Current and next == (" << currentChar << ", " << nextChar << ")\n";
if (currentChar == nextChar)
{
int seqEndIndex = index + 1;
for (int seqI = index + 1; seqI < len; seqI++)
{
if (chars[seqI] == currentChar) seqEndIndex = max(seqEndIndex, seqI);
else break;
}
len -= seqEndIndex - index + 1;
chars.erase(chars.begin() + index, chars.begin() + seqEndIndex + 1);
if ((index - 1) >= 0) index--;
}
else
{
index++;
}
}
for (size_t i = 0; i < chars.size(); i++)
cout << chars[i];
return 0;
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| ABABABABABABABABABABABABABABAB... |
| correct output |
|---|
| ABABABABABABABABABABABABABABAB... |
| user output |
|---|
| ABABABABABABABABABABABABABABAB... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| AABBAABBAABBAABBAABBAABBAABBAA... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 3
Verdict: ACCEPTED
| input |
|---|
| ABABABABABABABABABABABABABABAB... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 4
Verdict: ACCEPTED
| input |
|---|
| BBABABBBBBAABBBABABABBBBAAABAB... |
| correct output |
|---|
| BAB |
| user output |
|---|
| BAB |
Test 5
Verdict: ACCEPTED
| input |
|---|
| ACDCBBACDBBBACAACBBDBADBAABABA... |
| correct output |
|---|
| ACDCACDADBADABACACDCADADABABCA... |
| user output |
|---|
| ACDCACDADBADABACACDCADADABABCA... |
Test 6
Verdict: ACCEPTED
| input |
|---|
| EETFHIJOGACDHMGVFJCMETMZDEITTR... |
| correct output |
|---|
| TFHIJOGACDHMGVFJCMETMZDEIROTET... |
| user output |
|---|
| TFHIJOGACDHMGVFJCMETMZDEIROTET... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| GOONLAHLYPRFCZKIKSJWAWWYJJPCDB... |
| correct output |
|---|
| GNLAHLYPRFCZKIKSJWAYPCDNWYMRCE... |
| user output |
|---|
| GNLAHLYPRFCZKIKSJWAYPCDNWYMRCE... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| PISHWMOTCDDZFRMYMOMYDYYGJZIQHS... |
| correct output |
|---|
| PISHWMOTCZFRMYMOMYDGJZIQHSVAOK... |
| user output |
|---|
| PISHWMOTCZFRMYMOMYDGJZIQHSVAOK... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| QUVVTPXAMWWODFXRONJODPGBTCISGM... |
| correct output |
|---|
| QUTPXAMODFXRONJODPGBTCISGMVRBW... |
| user output |
|---|
| QUTPXAMODFXRONJODPGBTCISGMVRBW... |
Test 10
Verdict: ACCEPTED
| input |
|---|
| POXHAHYEZTLYNFSLABODMRNKDSKROZ... |
| correct output |
|---|
| POXHAHYEZTLYNFSLABODMRNKDSKROZ... |
| user output |
|---|
| POXHAHYEZTLYNFSLABODMRNKDSKROZ... |
