Cod sursa(job #219132)

Utilizator dragosmihaiDragos Oana dragosmihai Data 5 noiembrie 2008 19:43:54
Problema Prefix Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#define lmax 1000002
using namespace std;

int T,p[lmax],ll;
char s[lmax];

void prefix()
{
    int l=strlen(s);
    int k=0;
    for(int i=2;i<l;i++)
    {
        while(k&&s[k+1]!=s[i])
            k=p[k];
        if(s[k+1]==s[i])
            k++;
        p[i]=k;
        if(k&&(i%(i-k)==0))
            ll=i;
    }
}

void citire()
{
    ifstream f("prefix.in");
    ofstream g("prefix.out");
    f>>T;
    f.getline(s,lmax);
    for( ;T>0;T--)
    {
        f.getline(s,lmax);
        int l=strlen(s);
        for(int i=l;i>0;i--)
            s[i]=s[i-1];
        prefix();
        g<<ll<<endl;
    }
    f.close();
    g.close();
}

int main()
{
    citire();
    return 0;
}