CSES - Datatähti 2018 alku - Results
Submission details
Task:Merkkijono
Sender:Leiska
Submission time:2017-10-03 13:39:46 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#20.21 sdetails
#30.05 sdetails
#40.04 sdetails
#50.19 sdetails
#60.03 sdetails
#70.05 sdetails
#80.05 sdetails
#90.04 sdetails
#100.05 sdetails

Compiler report

input/code.cpp: In function 'std::string checkstr(std::string)':
input/code.cpp:12:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i<str.length(); i++) {
                                 ^
input/code.cpp:17:32: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
             if(i=str.length()-1) pos = i-len-1;
                                ^
input/code.cpp:21:20: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
             pos = i-len-1;
                    ^

Code

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

using namespace std;

string input, check;

string checkstr(string str) {
    int p, 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
BA

Test 4

Verdict:

input
BBABABBBBBAABBBABABABBBBAAABAB...

correct output
BAB

user output
AB

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
KO

Test 7

Verdict:

input
GOONLAHLYPRFCZKIKSJWAWWYJJPCDB...

correct output
GNLAHLYPRFCZKIKSJWAYPCDNWYMRCE...

user output
GOTY

Test 8

Verdict:

input
PISHWMOTCDDZFRMYMOMYDYYGJZIQHS...

correct output
PISHWMOTCZFRMYMOMYDGJZIQHSVAOK...

user output
PISHWMOTCDEA

Test 9

Verdict:

input
QUVVTPXAMWWODFXRONJODPGBTCISGM...

correct output
QUTPXAMODFXRONJODPGBTCISGMVRBW...

user output
QURH

Test 10

Verdict:

input
POXHAHYEZTLYNFSLABODMRNKDSKROZ...

correct output
POXHAHYEZTLYNFSLABODMRNKDSKROZ...

user output
POXHAHYEZTLYNFSLABODMRNKDSKROZ...