Cod sursa(job #2453111)

Utilizator Savu_Stefan_CatalinSavu Stefan Catalin Savu_Stefan_Catalin Data 2 septembrie 2019 15:08:04
Problema Prefix Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
int t,i,j,k,n,b[1000001],rez;
char c,a[1000001];
int main ()
{
in>>t;
in.get (c);
for (i=1;i<=t;++i)
{
    in.get (c);
    n=0;
    while (c!='\n')
    {
        a[++n]=c;
        b[n]=0;
        in.get (c);
    }
    rez=0;
    k=1;
    for (j=2;j<=n;++j)
    {
        while (k!=1&&a[j]!=a[k]) k=b[k-1]+1;
        if (a[j]==a[k])
        {
            b[j]=k;
            k++;
        }

    }
    for (j=n;j>=2;--j)
    {
         if (b[j]!=0&&j%(j-b[j])==0)
         {
             rez=j;
             break;
         }
    }
    out<<rez<<'\n';
}
            return 0;
}