Cod sursa(job #2288917)

Utilizator darisavuSavu Daria darisavu Data 24 noiembrie 2018 09:32:39
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int n,m,i,j,p[1000005],l,t,k;
char a[1000005];
int main()
{
    f>>t;
    f.get();
    for(l=1;l<=t;l++)
    {
        f>>a+1;
        n=strlen(a+1);
        k=0;
        for(i=2;i<=n;i++)
        {
            for(;k!=0&&a[k+1]!=a[i];) k=p[k];
            if(a[k+1]==a[i]) k++;
            p[i]=k;
        }
        for(i=n;i>=1;i--)
        {
            if(p[i]!=0&&(i%(i-p[i])==0))
            {
                g<<i<<'\n';
                break;

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