Task: | Rotations |
Sender: | jong |
Submission time: | 2018-10-13 15:58:07 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.03 s | details |
#4 | ACCEPTED | 0.01 s | details |
#5 | WRONG ANSWER | 0.03 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | UNKNOWN | -- | details |
#9 | UNKNOWN | -- | details |
#10 | UNKNOWN | -- | details |
#11 | UNKNOWN | -- | details |
#12 | UNKNOWN | -- | details |
Code
#include <iostream> using namespace std; int main() { string s; cin >> s; int n = s.length(); char min = -1; /*for (int i=0; i<n; ++i) if (min == -1 || s[i] < min) min = s[i];*/ int level = 0; int left = n; int arr[n]; for(int i=0; i<n; ++i) arr[i] = i; int arr_it = 0; while (left > 1 && level<(n+1)/2) { min = -1; arr_it = 0; for (int i=0; i<left; ++i) { if (min == -1 || s[(arr[i]+level) % n] < min) { min = s[(arr[i]+level) % n]; } } for (int i=0; i<left; ++i) { if (s[(arr[i]+level) % n] == min) { arr[arr_it] = arr[i]; ++arr_it; } } if ((left+1)/2 < arr_it) { // TODO: around! e.g. 'aabbaaabbaa' int maxs = 0; int maxsind = -1; int scount = 0; int currind = -1; for (int j=0; j<left; ++j) { if (s[(arr[j]+level) % n] == min) { ++scount; if (scount > maxs) { if (currind == -1) currind = j; maxs = scount; maxsind = currind; } } else { scount = 0; currind = -1; } } cout << s.substr(arr[maxsind], n-arr[maxsind]) << s.substr(0,arr[0]) << "\n"; return 0; } left = arr_it; ++level; } /*cout << arr[0] << "\n"; for (int i=0;i<n;++i) cout << arr[i] << " "; cout << "\n";*/ /*for (int i=0; i<n; ++i) cout << s[(arr[0] + i) % n]; cout << "\n";*/ cout << s.substr(arr[0], n-arr[0]) << s.substr(0,arr[0]) << "\n"; }
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: WRONG ANSWER
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) |