Cod sursa(job #2322271)

Utilizator rares1012Rares Cautis rares1012 Data 17 ianuarie 2019 17:15:17
Problema Prefix Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

int v[10000001];
char ch[1000000];

int main()
{
    int n,k,i,j,q,mx,co;
    char c;
    FILE*fi,*fo;
    fi=fopen("prefix.in","r");
    fo=fopen("prefix.out","w");
    fscanf(fi,"%d",&n);
    for(i=0; i<n; i++)
    {
        c=fgetc(fi);
        k=0;
        j=1;
        ch[j]=c;
        j++;
        c=fgetc(fi);
        mx=0;
        while(c!='\n' && c!=EOF)
        {
            ch[j]=c;
            while(k>0 && c!=ch[k+1])
            {
                k=v[k];
            }
            if(c==ch[k+1])
                k++;
            v[j]=k;
            if(v[j]>0 && j%(j-v[j])==0)
               mx=j;
            j++;
            c=fgetc(fi);
        }
        fprintf(fo,"%d\n",mx);
    }
    fclose(fi);
    fclose(fo);
    return 0;
}