Cod sursa(job #3163614)

Utilizator Nasa1004Ema Nicole Gheorghe Nasa1004 Data 31 octombrie 2023 18:12:44
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("prefix.in");
ofstream cout("prefix.out");

int main()
{
    int t;
    string s;
    cin >> t;
    while(t--)
    {
        int sol = 0, k = 0;
        string s;
        cin >> s;
        vector < int > pi(s.size());
        pi[0] = 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;

            if((i + 1) % (i + 1 - pi[i]) == 0 && (i + 1) / (i + 1 - pi[i]) > 1)
                sol = i + 1;
        }
        cout << sol << '\n';
    }
    return 0;
}