Cod sursa(job #2661713)

Utilizator GhitzarinoGhita Alexandru Ghitzarino Data 22 octombrie 2020 16:27:05
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
char s[1000005];
int v[1000005],m;
int main()
{
    int i;
    f>>m;
    f.get();
    for (i=1;i<=m;i++)
    {
        f.getline(s,1000005);
        int i,k=0,n,ok=0;
        n=strlen(s);
        v[1]=0;
        for (i=2;i<=n;i++)
        {
            while (k>0 && s[k]!=s[i-1]) k=v[k];
            if (s[i-1]==s[k]) k++;
            v[i]=k;
        }
        for (i=n;i>=1;i--)
            if (v[i]!=0 && i%(i-v[i])==0) {g<<i<<'\n';ok=1;break;}
        if (ok==0) g<<ok<<'\n';
    }
    return 0;
}