Cod sursa(job #2844824)

Utilizator Theo14Ancuta Theodor Theo14 Data 5 februarie 2022 16:44:35
Problema Prefix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<bits/stdc++.h>
using namespace std;

ifstream f("prefix.in");
ofstream g("prefix.out");

char s[1000002],t;
int v[1000002];

int main()
{
    int l,n,i,nrpref,raspuns;
    f>>t;
    for(l=1;l<=t;l++)
    {
        f>>(s+1);
        n=strlen(s+1);
        int k=0;
        v[1]=0;
        for(i=2;i<=n;i++)
        {
            while(s[i]!=s[k+1] && k>0)
            {
                k=v[k];
            }
            if(s[i]==s[k+1])
                k++;
            v[i]=k;
        }
        for(i=1;i<=n;i++)
        {
            if(v[i]>0 &&  i % (i-v[i])==0)
                raspuns=i;
        }
        g<<raspuns;
        g<<'\n';
    }
    return 0;
}