Cod sursa(job #3163589)

Utilizator andreea_condreaCondrea Andreea andreea_condrea Data 31 octombrie 2023 17:40:48
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");

int main()
{
    int t, sol, k;
    string s;
    fin>>t;
    for(int j=0; j<t; j++){
        fin>>s;
        vector <int> pi(s.size(), 0);
        k=0;
        for(int i=1; i<s.size(); i++){
            while(k!=0 && s[k]!=s[i])
                k=pi[k-1];
            if(s[k]==s[i])
                k++;
            pi[i]=k;
        }
        sol=0;
        for(int i=0; i<s.size(); i++){
            if((i+1)%(i+1-pi[i])==0 && (i+1)/(i+1-pi[i])>1)
                sol=i+1;
        }
        fout<<sol<<'\n';
    }
    return 0;
}