Submission details
Task:Rotations
Sender:siiruli-admin
Submission time:2018-10-13 13:42:19 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#10.07 sdetails
#20.06 sdetails
#30.30 sdetails
#40.31 sdetails
#50.27 sdetails
#60.08 sdetails
#70.07 sdetails
#8UNKNOWN--details
#9UNKNOWN--details
#10UNKNOWN--details
#11UNKNOWN--details
#12UNKNOWN--details

Code

#include <bits/stdc++.h>
#include <fstream>
using namespace std;
#define PB push_back
#define N (1<<20)
#define QAQ {cout << "0";return 0; }
typedef long long ll;
const ll inf = 1000000007;
int t[N][20], z;

int f(int a, int b){
  int V = 0;
  //cout << "\n" << a << " " << b<< ": \n";
  for(int k=z; k>=0; --k){
  //  cout << t[a][k] << " " << t[b][k] << ", ";
    if(t[a][k] != t[b][k]) continue;
    V += (1<<k);
    a += (1<<k), b+= (1<<k);
  }
  return V;
}

int main(){
  ios::sync_with_stdio(0); cin.tie(0);
  string s; cin >> s;
	int n = s.size();
	s = s + s + s;
	z = 1;
	while(z < n) z*=2; 
	for(int i=0; i<3*n; ++i) t[i][0] = s[i];
	
	for(int b=0; b<=z; ++b){
	  vector<pair<ll,ll>> v;
	  for(int i=0; i<n; ++i){
	    v.PB({t[i][b] * inf + t[i+(1<<b)][b], i});
	  }
	  sort(v.begin(), v.end());
	  ll c=0, prev=0;
	  for(pair<ll, ll> p : v){
	    if(prev != p.first) prev = p.first, ++c;
	//    cout << s.substr(p.second, (1<<(b+1))) << " " << c<<  "\n";
	    t[p.second][b+1] = c;
	  }
	}
	vector<pair<ll, ll>> v;
	for(int i=0; i<n; ++i){
	  v.PB({t[i][z], i});
	}
	sort(v.begin(), v.end());
	int V = v[0].second;
	for(int i=0; i<n; ++i) cout << s[V+i];
}













Test details

Test 1

Verdict:

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
(empty)

Test 2

Verdict:

input
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

user output
(empty)

Test 3

Verdict:

input
jibanqfglkmsywdlqjquxxnqeyhbyu...

correct output
aaadptqmkuqxnvmojzhghqtfztbwsj...

user output
(empty)

Test 4

Verdict:

input
muykjgvsstkgydmumitbgvsbtgyvmv...

correct output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

user output
(empty)

Test 5

Verdict:

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
(empty)

Test 6

Verdict:

input
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

correct output
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

user output
(empty)

Test 7

Verdict:

input
jtcbpjizbiauauipwsdteaisynwesj...

correct output
aisynwesjvtvgghnbqyqprwpfqayzl...

user output
(empty)

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)