Cod sursa(job #2729450)

Utilizator DariusGhercaDarius Gherca DariusGherca Data 24 martie 2021 18:46:28
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
const int N=1e6+10;
char s[N];
int pred[N];
int main()
{
    int t;
    f>>t;
    for(int r=1;r<=t;r++)
    {
        f>>(1+s);
        int m=strlen(1+s),lung=0;
        for(int i=2;i<=m;i++)
        {
            while(lung>0 && s[i]!=s[lung+1])
            {
                lung=pred[lung];
            }
            if(s[i]==s[lung+1])
            {
                lung++;
            }
            pred[i]=lung;
        }
        int rez=0;
        for(int i=1;i<=m;i++)
        {
            if(pred[i]!=0 && i%(i-pred[i])==0)
            {
                rez=i;
            }
        }
        g<<rez<<"\n";
    }
    return 0;
}