Cod sursa(job #2510002)

Utilizator hunting_dogIrimia Alex hunting_dog Data 15 decembrie 2019 15:59:16
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>

#define NMAX 1000001

using namespace std;


ifstream f("prefix.in");
ofstream g("prefix.out");

int main()
{
    int n;
    f>>n;
    while(n--)
    {char s[NMAX];
    f>>s;
    int lps[NMAX]={0};
    lps[0]=0;
    int len=0,rez=0,i=1;
    while(s[i]!='\0')
        {
        if(s[i]==s[len])
        {
        ++len;
        lps[i]=len;
        ++i;
        }
        else if(len)
            len=lps[len-1];
        else
            {
                lps[i]=0;
                ++i;
            }
        if(len && i%(i-len)==0)
            rez=i;
        }
    g<<rez<<'\n';
    }

    return 0;
}