Cod sursa(job #2729459)

Utilizator Horis21Horia Radu Horis21 Data 24 martie 2021 19:06:59
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <cstring>

using namespace std;

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

const int N =1e6;
char c[N+2];
int aux[N+2];

int main()
{
    int t;
    in>>t;
    while(t--)
    {
        int len=0;
        aux[1]=0;
        int ans=0;
        in>>(c+1);
        int n=strlen(c+1);
        for(int i=2;i<=n;i++)
        {
            while(len>0 && c[len+1]!=c[i]) len = aux[len-1];
            if(c[i]==c[len+1])
            {
                len++;
            }
            aux[i]=len;
            if(len>0 && i%(i-len)==0)
            {
                ans = i;
            }
        }
        out<<ans<<'\n';
    }
    return 0;
}