Cod sursa(job #2552533)

Utilizator bogosanuAndrei Bogos bogosanu Data 20 februarie 2020 22:30:03
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
#define N  1000005
using namespace std;

ifstream fin ("prefix.in");
ofstream fout ("prefix.out");

int urm[N];
char p[N];
int main()
{int i,j,n,nr,sol,k;
 fin>>nr;
 fin.get();
 for(i=1;i<=nr;++i)
    {fin.getline(p+1,N);
     n=strlen(p+1);
     sol=k=0;
     for(j=2;p[j];++j)
        {while(k>0 && p[j]!=p[k+1])
               k=urm[k];
         if(p[j]==p[k+1])
            k++;
         urm[j]=k;
         if(urm[j]!=0 && j%(j-urm[j])==0)
            sol=j;
        }
     fout<<sol<<'\n';
    }
  return 0;
}