Submission details
Task:Period
Sender:lnan95
Submission time:2020-09-26 15:03:01 +0300
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.01 sdetails
#11ACCEPTED0.01 sdetails
#12ACCEPTED0.01 sdetails
#13ACCEPTED0.01 sdetails
#14ACCEPTED0.01 sdetails
#15ACCEPTED0.01 sdetails
#16ACCEPTED0.01 sdetails
#17ACCEPTED0.01 sdetails
#18ACCEPTED0.01 sdetails
#19ACCEPTED0.01 sdetails
#20ACCEPTED0.01 sdetails
#21ACCEPTED0.01 sdetails

Code

#include<bits/stdc++.h> 
using namespace std; 
const int N = 1e5+1;
int n,z[N]; 
string s;


int main() 
{ 
    cin >> s;
    n = s.size();
    z[0]=n; 
    
    int j=1,k; 
    for (int i=1;i<n;) 
    { 
        if (j<i) j=i; 
        while (j<n && s[j]==s[j-i]) j++; 
        z[i]=j-i; 

        k=i+1;
        // i, .. k, ... j 
        // assign to following chars
        while (k+z[k-i]<j) {
            z[k]=z[k-i];
            k++;
        }
        i = k;
    } 

    for (int i=1;i<n;i++) {
        int j = i;
        while(n-z[j] == j) {
            j += z[j];
            if (j > n-1) {
                cout << s.substr(0, i);
                return 0;
            }
        } 
    }
    cout << s;
    return 0; 
} 

Test details

Test 1

Verdict: ACCEPTED

input
acbacbac

correct output
acb

user output
acb

Test 2

Verdict: ACCEPTED

input
a

correct output
a

user output
a

Test 3

Verdict: ACCEPTED

input
z

correct output
z

user output
z

Test 4

Verdict: ACCEPTED

input
aa

correct output
a

user output
a

Test 5

Verdict: ACCEPTED

input
az

correct output
az

user output
az

Test 6

Verdict: ACCEPTED

input
aba

correct output
ab

user output
ab

Test 7

Verdict: ACCEPTED

input
abab

correct output
ab

user output
ab

Test 8

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
a

user output
a

Test 9

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
Truncated

Test 10

Verdict: ACCEPTED

input
ababababababababababababababab...

correct output
ab

user output
ab

Test 11

Verdict: ACCEPTED

input
tgainzxtgainzxtgainzxtgainzxtg...

correct output
tgainzx

user output
tgainzx

Test 12

Verdict: ACCEPTED

input
qmuflfcbqweunsjsodgspftyvikiwk...

correct output
qmuflfcbqweunsjsodgspftyvikiwk...

user output
qmuflfcbqweunsjsodgspftyvikiwk...

Test 13

Verdict: ACCEPTED

input
ohbsbconrkytyhtmibzrwwqdsqojoe...

correct output
ohbsbconrkytyhtmibzrwwqdsqojoe...

user output
ohbsbconrkytyhtmibzrwwqdsqojoe...
Truncated

Test 14

Verdict: ACCEPTED

input
hxkuxccasglgpvnfnhdoqelpvxughq...

correct output
hxkuxccasglgpvnfnhdoqelpvxughq...

user output
hxkuxccasglgpvnfnhdoqelpvxughq...
Truncated

Test 15

Verdict: ACCEPTED

input
mhwvddomkxrzuziwbfoaqxzjmfevla...

correct output
mhwvddomkxrzuziwbfoaqxzjmfevla...

user output
mhwvddomkxrzuziwbfoaqxzjmfevla...
Truncated

Test 16

Verdict: ACCEPTED

input
gnruvsfdjemxstfuysiqkrtwbgtono...

correct output
gnruvsfdjemxstfuysiqkrtwbgtono...

user output
gnruvsfdjemxstfuysiqkrtwbgtono...
Truncated

Test 17

Verdict: ACCEPTED

input
xqiwjzftugyurtwsziffnqaeozescu...

correct output
xqiwjzftugyurtwsziffnqaeozescu...

user output
xqiwjzftugyurtwsziffnqaeozescu...
Truncated

Test 18

Verdict: ACCEPTED

input
vgygtamnegxyxvjbuceoliipbkggyw...

correct output
vgygtamnegxyxvjbuceoliipbkggyw...

user output
vgygtamnegxyxvjbuceoliipbkggyw...
Truncated

Test 19

Verdict: ACCEPTED

input
qvjhmaafzlugwwaygdojysrjoydnnj...

correct output
qvjhmaafzlugwwaygdojysrjoydnnj...

user output
qvjhmaafzlugwwaygdojysrjoydnnj...
Truncated

Test 20

Verdict: ACCEPTED

input
tusmizkjfdazyohorfcumwmalodvnc...

correct output
tusmizkjfdazyohorfcumwmalodvnc...

user output
tusmizkjfdazyohorfcumwmalodvnc...
Truncated

Test 21

Verdict: ACCEPTED

input
zqikxaoeizncpvlpcvomrdkstackqq...

correct output
zqikxaoeizncpvlpcvomrdkstackqq...

user output
zqikxaoeizncpvlpcvomrdkstackqq...
Truncated