Cod sursa(job #2202283)

Utilizator rnqftwcalina florin daniel rnqftw Data 8 mai 2018 12:29:30
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <string.h>
#define Nmax 1000005

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

int T;
int pre[Nmax];

void prefix(char a[],int n)
{  int maxim=0;
    int k=0;

    for(int i=2;i<=n;++i)
    {
        while(k>0 && a[k+1]!=a[i])
            k=pre[k];

            if(a[k+1]==a[i])++k;
            pre[i]=k;
    }

    for(int i=1;i<=n;++i)
        if(pre[i]!=0 && i%(i-pre[i])==0)
          maxim=i;

    fout<<maxim<<"\n";
}




int main()
{
   fin>>T;
   char a[Nmax];
   while(T--)
   {

       fin>>(a+1);

       int n=strlen(a+1);

       prefix(a,n);
   }
    return 0;
}