Cod sursa(job #3281053)

Utilizator Anul2024Anul2024 Anul2024 Data 28 februarie 2025 11:05:26
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin ("prefix.in");
ofstream fout ("prefix.out");
int t,n,pi[1000005];
char s[1000005],S[1000005];
int main()
{
    fin>>t;
    while (t--)
    {
        fin>>S;
        strcpy (s+1,S);
        int k=0,sol=0;
        n=strlen (s+1);
        for (int i=2; i<=n; i++)
        {
            while (k>0&&s[i]!=s[k+1])
                k=pi[k];
            if (s[i]==s[k+1])
                k++;
            pi[i]=k;
            if (pi[i]>0&&i%(i-pi[i])==0)
                sol=i;
        }
        fout<<sol<<"\n";
    }
    return 0;
}