Cod sursa(job #1625012)

Utilizator alexpascadiAlexandru Pascadi alexpascadi Data 2 martie 2016 15:56:27
Problema Prefix Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

const int N = 1000001;
char v[N];
int pred[N];

int main()
{
    ifstream in("prefix.in");
    ofstream out("prefix.out");

    int t,i,j,k,rez;
    in>>t>>ws;
    for(i=0;i<t;i++)
    {
        in.getline(v+1,N);
        pred[1]=0; k=0;
        rez=0;
        for(j=2;v[j];j++)
        {
            while(k>0 && v[j]!=v[k+1])
                k=pred[k];
            if(v[j]==v[k+1])
                k++;
            pred[j]=k;
            //out<<pred[j]<<" ";
            if(pred[j]!=0 && j%(j-pred[j])==0)
                rez=j;
        }
        out<<rez<<"\n";
    }
    return 0;
}