Cod sursa(job #3338147)

Utilizator robertcosacCosac Robert-Mihai robertcosac Data 31 ianuarie 2026 21:31:04
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
char s[1000009];
int lps[1000009];
signed main ()
{
    int t;
    f >> t;
    f.get();
    while (t--)
    {
        f.getline (s+1, 1000001);
        int n=strlen (s+1);
        for (int i=1; i<=n; i++)
            lps[i]=0;
        int x=0;
        for (int i=2; i<=n; i++)
        {
            x=lps[i-1];
            while (x!=0 && s[x+1]!=s[i])
                x=lps[x];
            if (s[x+1]==s[i])
                lps[i]=x+1;
        }
        //cout << lps[19] << ' ';
        int ans=0;
        for (int i=1; i<=n; i++)
        {
            if (lps[i] && i%(i-lps[i])==0)
                ans=i;
        }
        g << ans << '\n';

    }
}