Cod sursa(job #3288378)

Utilizator cattyAninisCatrinel catty Data 21 martie 2025 19:51:40
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
char n[1000005];
int len,lps[1000005],i,t,lst,j,poz,siz;
int main()
{
    in>>t;
    while(t--)
    {
        in>>n;
        len=0;
        lps[0]=0;
        poz=0;
        for(i=1; n[i]; ++i)
        {
            if(n[i]==n[len])
                ++len,lps[i]=len;
            else if(!len)
                lps[i]=0;
            else
            {
                while(len)
                {
                    len=lps[len-1];
                    if(n[i]==n[len])
                    {
                        ++len;
                        lps[i]=len;
                        break;
                    }
                    else lps[i]=0;
                }
            }
            if(len && (i+1)%(i-len+1)==0)
                poz=i+1;
        }
        out<<poz<<'\n';
    }
}