Cod sursa(job #2562220)

Utilizator AndroidusAlex Turculet Androidus Data 29 februarie 2020 12:51:22
Problema Prefix Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

int v[100005], n, a, t;
string s;

int main()
{
    ifstream cin("prefix.in");
    ofstream cout("prefix.out");
    cin>>t;
    for(int i=0; i<t; ++i){
        a=0;
        cin>>s;
        //s=s+"#"+s2;
        n=s.length();
        for(int i=1; i<n; ++i){
            int now=v[i-1];
            while(now>0&&s[now]!=s[i])
                now=v[now-1];
            if(s[now]==s[i])
                now++;
            v[i]=now;
            /*if(now==s2.length())
                cnt++;*/
            if(v[i-1]>0&&i%(i-v[i-1])==0)
                a=i;
        }
        if(v[n-1]>0&&n%(n-v[n-1])==0)
            a=n;
        cout<<a<<'\n';
    }
    //cout<<cnt;
    return 0;
}