Task: | Period |
Sender: | Pohjantahti |
Submission time: | 2018-10-13 14:04:07 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.03 s | details |
#2 | ACCEPTED | 0.03 s | details |
#3 | ACCEPTED | 0.03 s | details |
#4 | ACCEPTED | 0.03 s | details |
#5 | ACCEPTED | 0.04 s | details |
#6 | ACCEPTED | 0.06 s | details |
Code
#include <iostream> #include <vector> #include <string> using namespace std; string s; int n; vector<int> zalg(string cs) { int cn = cs.length(); vector<int> z(cn); int x = 0, y = 0; for (int i = 1; i < n; ++i) { z[i] = max(0, min(z[i-x], y-i+1)); while (i+z[i] < cn && cs[z[i]] == cs[i+z[i]]) { x = i; y = i+z[i]; z[i]++; } } return z; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> s; n = s.length(); vector<int> z = zalg(s); for (int i = 0; i < n; ++i) { int rem = n-i; if (z[i] == rem) { for (int j = 0; j < i; ++j) { cout << s[j]; } cout << "\n"; return 0; } } cout << s << "\n"; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
correct output |
---|
a |
user output |
---|
a |
Test 2
Verdict: ACCEPTED
input |
---|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
correct output |
---|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
user output |
---|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
Test 3
Verdict: ACCEPTED
input |
---|
nabvmrnenabvmrnenabvmrnenabvmr... |
correct output |
---|
nabvmrne |
user output |
---|
nabvmrne |
Test 4
Verdict: ACCEPTED
input |
---|
fwqrbqnmobvwslpyfrlkrfwluaxyzk... |
correct output |
---|
fwqrbqnmobvwslpyfrlkrfwluaxyzk... |
user output |
---|
fwqrbqnmobvwslpyfrlkrfwluaxyzk... |
Test 5
Verdict: ACCEPTED
input |
---|
ohicwwkhdoesqvsyemhdhubpvmqkre... |
correct output |
---|
ohicwwkhdoesqvsyemhdhubpvmqkre... |
user output |
---|
ohicwwkhdoesqvsyemhdhubpvmqkre... |
Test 6
Verdict: ACCEPTED
input |
---|
gqzzocfzbuvfovbvamyflvcuuajzgu... |
correct output |
---|
gqzzocfzbuvfovbvamyflvcuuajzgu... |
user output |
---|
gqzzocfzbuvfovbvamyflvcuuajzgu... |