Cod sursa(job #2322260)

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

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

int main()
{
    int n,k,i,j,q,mx,co,l0=0;
    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=0;
        ch[j]=c;
        j++;
        c=fgetc(fi);
        l0=0;
        while(c!=EOF && c!='\n')
        {
            ch[j]=c;
            while(k>0 && ch[j]!=ch[k])
            {
                k=v[k-1];
            }
            if(ch[j]==ch[k])
                k++;
            v[j]=k;
            j++;
            c=fgetc(fi);
        }
        mx=0;
        for(q=0; q<j; q++)
        {
             if(v[q]>0 && v[q]%(q+1-v[q])==0 && q>mx)
               mx=q+1;
        }
        fprintf(fo,"%d\n",mx);
    }
    fclose(fi);
    fclose(fo);
    return 0;
}