CSES - Datatähti 2018 alku - Results
Submission details
Task:Merkkijono
Sender:Yytsi
Submission time:2017-10-12 13:31:49 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.06 sdetails

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...