Cod sursa(job #3186311)

Utilizator MegaCoderMinoiu Teodor Mihai MegaCoder Data 22 decembrie 2023 18:18:38
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
std::ifstream fin("prefix.in");
std::ofstream fout("prefix.out");
int p[1000005];
int getPrefMax(std::string local)
{
    long long size=local.size();
    int i=0, j=-1;
    p[0]=-1;
    int max=0;
    while(i<size)
    {
        while(j>=0 && local[i]!=local[j])
            j=p[j];
        ++i;
        ++j;
        p[i]=j;
        if(i%(i-p[i])==0 && p[i])
            if(i>max)
                max=i;
    }
    return max;
}
void solve()
{
    int n;
    fin>>n;
    for(int index=0; index<n; ++index)
    {
        std::string local;
        fin>>local;
        int ans=getPrefMax(local);
        fout<<ans<<'\n';
    }
}
int main()
{
    solve();
    return 0;
}