Cod sursa(job #3333725)

Utilizator Cristian2007Tanase Cristian-Gabriel Cristian2007 Data 14 ianuarie 2026 22:51:04
Problema Prefix Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.23 kb
//prefix.cpp

#include<bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
 int p=1327, mod=10663;
    int x,t,maxim=0,pp[1000001],s[1000001],k,rez,cs,cd,nr,rezcscd,l=0,lungime;
    char a[1000001];
int main()
{

    f>>t;
    pp[0]=1;
     for(x=1;x<=1000000;x++)
    pp[x]=(pp[x-1]*p)%mod;

     for(x=1;x<=t;x++)
    {
        f>>a;
        lungime=strlen(a);
        maxim=0;
        s[1]=a[0]-'0';
        for(k=2;k<=lungime;k++)
            {s[k]=(s[k-1]*p+(a[k-1]-'0'))%mod;}
            for(k=1;k<=lungime/2;k++)
            {
                rez=s[k];
                cs=k+1;
                cd=2*k;
                nr=1;
                rezcscd=(s[cd]-(s[cs-1]*pp[k])%mod+mod)%mod;
                while(rez==rezcscd&&cd<=lungime)
                {
                    nr++;
                    cs+=k;
                    cd+=k;
                    rezcscd=(s[cd]-(s[cs-1]*pp[k])%mod+mod)%mod;
                }
                if(nr>1)
                {
                    l=k*nr;
                     if(l>maxim)
                    maxim=l;
                }
            }
            g<<maxim<<endl;
    }



    f.close();
    g.close();
    return 0;
}