Cod sursa(job #3334085)

Utilizator stefan__1Zavoi Stefan stefan__1 Data 16 ianuarie 2026 10:14:37
Problema Prefix Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int p=1372, mod=10663;
int pp[1001];
int a[1001];
int b[1001];
int s[1001];

char x[1000001];
int main()
{ int i,n,m,sb,sa,nr=0,poz=0,j,l,maxim=0;
pp[0]=1;
for (i=1;i<=1000;i++)
    pp[i]=(pp[i-1]*p)%mod;
    f>>n;
for (i=1;i<=n;i++){ maxim=0;
    f>>x;
    m=strlen(x);

    for(j=0;j<=m;j++)
        a[j+1]=x[j]-'0';
        s[1]=a[1];
    for (j=2;j<=m;j++)
    {
        s[j]=(s[j-1]*p+a[j])%mod;
    }
    for(l=1;l<=m/2;l++)

    { int fr=1;

        for (j = l + 1; j <= m; j += l)
        {
          sa=(s[j+l-1]-s[j-1]*pp[l]%mod + mod)%mod;
          if(sa==s[l])
                 fr++;
          else break;
        }

      if(fr*l>maxim && fr>1)
        maxim=fr*l;
    }
    g<<maxim<<endl;

}

    return 0;
}