Cod sursa(job #2554589)

Utilizator Iulia14iulia slanina Iulia14 Data 23 februarie 2020 10:20:32
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin ("prefix.in");
ofstream cout ("prefix.out");
char s[1000005];
int pi[1000005];
int main()
{
    int t,x,n,now,i;
    cin>>t;
    while (t)
    {
        cin>>s+1;
        x=0;
        n=strlen(s+1);
        for (i=2;i<=n;i++)
        {
            now=pi[i-1];
            while (now and s[now+1]!=s[i])
                now=pi[now];;
            if (s[now+1]==s[i])
                now++;
            pi[i]=now;
            if (pi[i] and i%(i-pi[i])==0)
               x=i;
        }
        cout<<x<<'\n';
        t--;
    }
    return 0;
}