Cod sursa(job #3293239)

Utilizator mihail_11Ionescu Mihail mihail_11 Data 10 aprilie 2025 20:51:36
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 fin("prefix.in");
ofstream fout("prefix.out");
string s;
int prefix[1000005];
void genprefix()
{
    int i,j;
    //fout<<prefix[0]<<' ';
    for(i=1;i<s.size();++i)
    {
        j=prefix[i-1];
        while(j>0 && s[j]!=s[i])
            j=prefix[j-1];
        if(s[j]==s[i])
            ++j;
        prefix[i]=j;
        //fout<<prefix[i]<<' ';
    }
}
int main()
{
    int i,n,ans,j;
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>s;
        genprefix();
        ans=0;
        for(j=1;j<s.size();++j)
        {
            if((j+1)%(j+1-prefix[j])==0 && prefix[j]!=0)
            {
                ans=j+1;
            }
        }
        fout<<ans<<'\n';
    }
    return 0;
}