CSES - E4590 2016 6 - Results
Submission details
Task:Rotations
Sender:eax511
Submission time:2016-10-22 13:55:32 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.12 sdetails
#2ACCEPTED0.11 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.10 sdetails
#7ACCEPTED0.10 sdetails
#8UNKNOWN--details
#9UNKNOWN--details
#10UNKNOWN--details
#11UNKNOWN--details
#12UNKNOWN--details

Compiler report

input/code.cpp: In function 'int LSC(std::string&)':
input/code.cpp:9:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=1;j<s.size();++j){
                        ^

Code

#include <string>
#include <iostream>
#include <vector>
using namespace std;
int LSC(std::string& s){
  s+=s;
  vector<int> f(s.size(),-1);
  int k=0;
  for(int j=1;j<s.size();++j){
    int i=f[j-k-1];
    while(i!=-1 && s[j]!=s[k+i+1]){
      if(s[j] < s[k+i+1]) k=j-i-1;
      i = f[i];
    }
    if(i==-1 && s[j] != s[k+i+1]){
      if(s[j] < s[k+i+1]) k=j;
      f[j-k]=-1;
    }
    else f[j-k]=i+1;
  }
  return k;
}
int main(){
  string s;
  cin>>s;
  int n=s.size();
  int k=LSC(s);
  cout<<s.substr(k,n)<<'\n';
  return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

Test 2

Verdict: ACCEPTED

input
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

user output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

Test 3

Verdict: ACCEPTED

input
jibanqfglkmsywdlqjquxxnqeyhbyu...

correct output
aaadptqmkuqxnvmojzhghqtfztbwsj...

user output
aaadptqmkuqxnvmojzhghqtfztbwsj...

Test 4

Verdict: ACCEPTED

input
muykjgvsstkgydmumitbgvsbtgyvmv...

correct output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

user output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

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)