Cod sursa(job #2672572)

Utilizator andreitabaraandrei2004 andreitabara Data 14 noiembrie 2020 11:11:17
Problema Prefix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("prefix.in");
ofstream out ("prefix.out");
long n,i,v[10000002],cmax,nr,m;
char p[10000002];
void construire (char p[])
{

    v[0]=0;
    int k=0;
    for(int q=1;q<m;q++)
    {
        while((k>0)&&(p[k]!=p[q]))
        {
            k=v[k-1];
        }
        if(p[k]==p[q])
        {
            k++;
        }
        v[q]=k;
        if(v[q]>0&&!((q+1)%(q-v[q]+1)))cmax=q+1;

    }
}
int main()
{
    in>>n;
in.get();
for(i=1;i<=n;i++)
{
in.getline(p,10000002);
m=strlen(p);
cmax=0;
construire(p);
out<<cmax<<'\n';
memset(v,0,sizeof(v));
}

    return 0;
}