Cod sursa(job #2452020)

Utilizator filiptudose2007Tudose Filip filiptudose2007 Data 29 august 2019 10:13:02
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int t,i,n,l,j,k,urm[1000005],p[1000005];
char s[1000005];
int main()
{
    f>>t;
    for(i=1; i<=t; ++i)
    {
        f>>(s+1);
        l=strlen(s+1);
        k=0;
        for(j=2; j<=l; ++j)
        {
            while(k && s[j]!=s[k+1])k=p[k];
            if(s[k+1]==s[j])++k;
            urm[j]=k;
        }
        for(j=l; j>=1; --j)
        {
            if(urm[j]!=0 && j%(j-urm[j])==0)
            {
                g<<j<<'\n';
                break;
            }

        }
        if(j==1)g<<0<<'\n';
        if(j==0)g<<0<<'\n';
    }
    return 0;
}