Task: | Period |
Sender: | omantere |
Submission time: | 2016-10-24 18:02:51 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.07 s | details |
#2 | ACCEPTED | 0.07 s | details |
#3 | ACCEPTED | 0.04 s | details |
#4 | ACCEPTED | 0.05 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.06 s | details |
Code
#include <bits/stdc++.h> #define _ ios_base::sync_with_stdio(0);cin.tie(); #define ll long long #define vi vector<int> #define pb push_back #define pii pair<int, int> #define vpii vector<pii> #define vvi vector< vector<int> > #define si set<int> #define mi map<string, int> using namespace std; int main() { _ string s; cin >> s; int L = 0; int R = 0; int n = s.size(); int z[n]; if(n == 1) { cout << s[0] << endl; return 0; } for(int i = 0; i < n; i++) z[i] = 0; for (int i = 1; i < n; i++) { if (i > R) { L = R = i; while (R < n && s[R-L] == s[R]) R++; z[i] = R-L; R--; } else { int k = i-L; if (z[k] < R-i+1) z[i] = z[k]; else { L = i; while (R < n && s[R-L] == s[R]) R++; z[i] = R-L; R--; } } if(n - i == z[i]) { cout << s.substr(0, i) << endl; return 0; } } cout << s << endl; 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... |