Cod sursa(job #2323210)

Utilizator TavinciStefanescu Octavian Tavinci Data 18 ianuarie 2019 22:41:14
Problema Prefix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
char cuv[1000001];
int prefix[1000001], maxi, n;
void searchfor(char cuv[])
{
    int l=strlen(cuv)+1, j=0;
    for(int i=2; i<=l; i++)
    {
        while(j!=0 && cuv[j+1]!=cuv[i])
        {
            j=prefix[j];
            if(cuv[j+1]==cuv[i])
                j++;

        }
        prefix[i]=j;
    }
}
int main()
{
    fin>>n;
    for(int i=1; i<=n; i++)
    {
        fin>>cuv;
        maxi=0;
        searchfor(cuv);
        int l=strlen(cuv)+1;
        for(int i=1; i<=l; i++)
        {
            if(prefix[i])
                if(i%(i-prefix[i])==0)
                    maxi=i;
        }
        fout<<maxi<<"\n";
    }
    return 0;
}