Cod sursa(job #603600)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 17 iulie 2011 16:46:46
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream>
#include <string>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");

string s;
int v[1000000],i,t;

int prefix()
{
    int k=0,i;
    v[0]=v[1]=0;
    for (i=2; i<s.size(); i++)
    {
        while (k>0 && s[k+1]!=s[i]) k=v[k];
        if (s[k+1]==s[i]) k++;
        v[i]=k;
    }
    for (i=s.size()-1; i>0; i--) if (i%(i-v[i])==0 && v[i]>=i/2 && i>1) break;
    g << i << '\n';
}

int main()
{
    f >> t;
    for (i=0; i<t; i++)
    {
        f >> s;
        s=' '+s;
        prefix();
    }
}