Cod sursa(job #3161704)

Utilizator Maftei_TudorMaftei Tudor Maftei_Tudor Data 27 octombrie 2023 19:38:33
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 in("prefix.in");
ofstream out("prefix.out");
const int N = 1e6 + 5;

int tt, pi[N];
char c[N];

int main() {

    in >> tt;
    while(tt--) {
        in >> c;
        int ans = 0, n = strlen(c);
        for(int i=1; i<n; i++) {
            int j = pi[i-1];

            while(j && c[i] != c[j])
                j = pi[j-1];

            if(c[i] == c[j])
                j++;
            pi[i] = j;

            if(pi[i] && (i + 1) % (i - pi[i] + 1) == 0)
                ans = i + 1;
        }

        out << ans << '\n';
    }
    return 0;
}