Cod sursa(job #2562426)

Utilizator evelina.nitoiuNitoiu Evelina evelina.nitoiu Data 29 februarie 2020 14:17:37
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
const int NMAX = 1000003;
char s[NMAX];
int Pi[NMAX];
int i,n,now,r,q,j;
int main() {
    in>>q;
    for(int k=1;k<=q;k++){
        in>>s;
        n=strlen(s);
        for(i=n;i>=1;i--)
            s[i]=s[i-1];
        r=0;
        for(i=2;i<=n;i++) {
            now=Pi[i-1];
            while(now>0&&s[now+1]!=s[i])
                now=Pi[now];
            if(s[now+1]==s[i])
                now++;
            Pi[i]=now;
            if (Pi[i]!=0&&i%(i-Pi[i])==0)
                r=i;
        }
        out<<r<<"\n";
    }
    return 0;
}