Task: | Rotations |
Sender: | jong |
Submission time: | 2018-10-24 21:25:13 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.04 s | details |
#3 | ACCEPTED | 0.03 s | details |
#4 | ACCEPTED | 0.02 s | details |
#5 | ACCEPTED | 0.03 s | details |
#6 | ACCEPTED | 0.08 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> #include <algorithm> using namespace std; #define _a(_i) (s[(c[_i] + level) % n]) int main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin >> s; int n = s.length(); bool isCand[n]; int c[n]; for (int i=0; i<n; ++i) { isCand[i] = true; c[i] = i; } int cands = n; int level = 0; int c_it; while (cands > 1) { c_it = 0; char min = _a(0); for (int i=0; i<cands; ++i) { if (_a(i) < min) min = _a(i); //isCand[c[i]] = false; if (level > 0) isCand[(c[i] + level) % n] = false; } //cout << min << "\n"; for (int i=0; i<cands; ++i) { //cout << "_" << _a(i) << "\n"; if (isCand[c[i]] && _a(i) == min) { c[c_it] = c[i]; ++c_it; //cout << "__" << c[i] << "\n"; } else { isCand[c[i]] = false; } } cands = c_it; ++level; } //cout << c[0] << " " << c[1] << " " << c[2] << " " << c[3] << "\n"; cout << s.substr(c[0], n-c[0]) << s.substr(0,c[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: 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) |