Cod sursa(job #1711313)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 30 mai 2016 23:04:32
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int t,j,i,max1,p,aux[1000005];
char sir[1000005];
int main()
{
    f>>t;
    f.get();
    while(t)
    {
        f.getline(sir+1,1000004);
        max1=0;
        j=strlen(sir+1);
        p=0;
        for(i=2;i<=j;i++)
        {
            while(p&&sir[p+1]!=sir[i])
              p=aux[p];
            if(sir[p+1]==sir[i])
              p++;
            aux[i]=p;
        }
        bool ok=0;
        for(i=j;i>=1&&!ok;i--)
          if(aux[i]>0&&i%(i-aux[i])==0)
          {
              max1=i;
              ok=1;
          }
        g<<max1<<"\n";
        t--;
    }
    return 0;
}