CSES - E4590 2016 6 - Results
Submission details
Task:Rotations
Sender:warbaque
Submission time:2016-10-22 15:23:03 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.09 sdetails
#20.09 sdetails
#30.04 sdetails
#40.04 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.09 sdetails
#7ACCEPTED0.08 sdetails
#8UNKNOWN--details
#9UNKNOWN--details
#10UNKNOWN--details
#11UNKNOWN--details
#12UNKNOWN--details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:17:41: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
         if (s[i] < s[j] || s[i] == s[j] && s[i] != s[i-1]) {
                                         ^
input/code.cpp:27:62: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
                 (count > min_count  ||  count == min_count   &&
                                                              ^

Code

#include <iostream>
#include <string>

int main()
{
    std::string s;
    std::cin >> s;

    size_t  min_j = 0;
    size_t  min_count = 1;

    size_t  j = 0;
    size_t  count = 1;

    for (size_t i=1; i < s.size(); ++i) {

        if (s[i] < s[j] || s[i] == s[j] && s[i] != s[i-1]) {
            j = i;
        }

        else if (s[i] == s[i-1]) {
            ++count;
        }

        else if (s[i] > s[j]) {
            if (s[j] < s[min_j]     || (s[j] == s[min_j]     &&
                (count > min_count  ||  count == min_count   &&
                s[(j+count)%s.size()] < s[(min_j+min_count)%s.size()]))) {
                min_j = j;
                min_count = count;
            }
            j = i;
            count = 1;
        }

    }

    std::cout << s.substr(min_j) << s.substr(0, min_j) << std::endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

Test 2

Verdict:

input
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

user output
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

Test 3

Verdict:

input
jibanqfglkmsywdlqjquxxnqeyhbyu...

correct output
aaadptqmkuqxnvmojzhghqtfztbwsj...

user output
aaejbnmgukqcjjpxghofjonchxlzig...

Test 4

Verdict:

input
muykjgvsstkgydmumitbgvsbtgyvmv...

correct output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

user output
anxziysejyhogbchrnitlthmtnjyvc...

Test 5

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

Test 6

Verdict: ACCEPTED

input
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

correct output
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

user output
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

Test 7

Verdict: ACCEPTED

input
jtcbpjizbiauauipwsdteaisynwesj...

correct output
aisynwesjvtvgghnbqyqprwpfqayzl...

user output
aisynwesjvtvgghnbqyqprwpfqayzl...

Test 8

Verdict: UNKNOWN

input
a

correct output
a

user output
(not available)

Test 9

Verdict: UNKNOWN

input
ab

correct output
ab

user output
(not available)

Test 10

Verdict: UNKNOWN

input
ba

correct output
ab

user output
(not available)

Test 11

Verdict: UNKNOWN

input
home

correct output
ehom

user output
(not available)

Test 12

Verdict: UNKNOWN

input
baaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
(not available)