| 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... |
