CSES - Datatähti 2018 alku - Results
Submission details
Task:Merkkijono
Sender:Leiska
Submission time:2017-10-03 13:42:08 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#20.20 sdetails
#30.05 sdetails
#40.04 sdetails
#50.19 sdetails
#60.04 sdetails
#70.05 sdetails
#80.04 sdetails
#90.04 sdetails
#100.04 sdetails

Compiler report

input/code.cpp: In function 'std::string checkstr(std::string)':
input/code.cpp:13:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i<str.length(); i++) {
                                 ^
input/code.cpp:18:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if(i==(str.length()-1)) pos = i-len-1;
                                  ^

Code

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

string input, check;

string checkstr(string str) {
    int p = 1;
    int len = 1;
    int pos = 0;
    for(int i = 0; i<str.length(); i++) {
        //p = str[i];
        if(i>0 && str[i]==str[i-1]) {
            p++;
            len = max(p,len);
            if(i==(str.length()-1)) pos = i-len-1;
        }
        else if (p>len) {
            len=p;
            pos = i-len-1;
        }
        else {
            p=1;
        }
    }
    
    if (len<=1) return "\n";
    
    return str.erase(pos,len);
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    cin >> input;
    
    int end = 0;
    while (end > -1) {
        check = checkstr(input);
        if (check == "\n") {
            cout << input << "\n";
            end--;
        } 
        else input = check;
    }
}

Test details

Test 1

Verdict: ACCEPTED

input
ABABABABABABABABABABABABABABAB...

correct output
ABABABABABABABABABABABABABABAB...

user output
ABABABABABABABABABABABABABABAB...

Test 2

Verdict:

input
AABBAABBAABBAABBAABBAABBAABBAA...

correct output
(empty)

user output
(empty)

Error:
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::erase

Test 3

Verdict:

input
ABABABABABABABABABABABABABABAB...

correct output
(empty)

user output
BABABABABABABABABABABABABABABA...

Test 4

Verdict:

input
BBABABBBBBAABBBABABABBBBAAABAB...

correct output
BAB

user output
ABAB

Test 5

Verdict:

input
ACDCBBACDBBBACAACBBDBADBAABABA...

correct output
ACDCACDADBADABACACDCADADABABCA...

user output
(empty)

Error:
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::erase

Test 6

Verdict:

input
EETFHIJOGACDHMGVFJCMETMZDEITTR...

correct output
TFHIJOGACDHMGVFJCMETMZDEIROTET...

user output
CTFVLVUORBWZXOFUCNUMROLYHWCMCF...

Test 7

Verdict:

input
GOONLAHLYPRFCZKIKSJWAWWYJJPCDB...

correct output
GNLAHLYPRFCZKIKSJWAYPCDNWYMRCE...

user output
XBUNYGPOTDYIWPYBZAHXPNECXPIWQY...

Test 8

Verdict:

input
PISHWMOTCDDZFRMYMOMYDYYGJZIQHS...

correct output
PISHWMOTCZFRMYMOMYDGJZIQHSVAOK...

user output
IVFTUSLJHINPIKEA

Test 9

Verdict:

input
QUVVTPXAMWWODFXRONJODPGBTCISGM...

correct output
QUTPXAMODFXRONJODPGBTCISGMVRBW...

user output
SKITRH

Test 10

Verdict:

input
POXHAHYEZTLYNFSLABODMRNKDSKROZ...

correct output
POXHAHYEZTLYNFSLABODMRNKDSKROZ...

user output
YSTPVGXPIFAHM