Cod sursa(job #1384807)

Utilizator horiainfoTurcuman Horia horiainfo Data 11 martie 2015 14:12:06
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <cstdio>
#define LG 1000003
#include <cstring>
using namespace std;
ofstream fout("prefix.out");
int d,L,vmax,t,v[LG],nr;
char a[LG],ch;
int solve()
{
    L=1; v[1]=0; vmax=0;
    d=strlen(a+1); nr=1;
    for(int i=2;i<=d;i++)
    {
        if(a[i]==a[i-L])
        {
            v[i]=v[i-1]+1;
        }
        else
        {
            if(nr>vmax && nr!=L) vmax=nr;
            if(a[i]==a[1]) L=i-1,v[i]=1;
            else    L=i,v[i]=0;
            nr=L;
        }
        if(v[i]==L)
            v[i]=0,nr+=L;
    }
    if(nr>vmax && nr!=L && v[d]==0) vmax=nr;
    return vmax;
}
int main()
{
    freopen("prefix.in","r",stdin);
    scanf("%d%c",&t,&ch);
    for(int i=1;i<=t;i++)
    {
        scanf("%s",&*(a+1));
        fout<<solve()<<'\n';
    }
    return 0;
}