Cod sursa(job #2717264)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 6 martie 2021 21:31:49
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("prefix.in");
ofstream g("prefix.out");

char A[2000001];
int pi[2000001];

int main(){

	int T;
	f >> T;
	while(T--){

		f >> (A + 1);

		int N = strlen(A + 1), q = 0, mx = 0;
		pi[1] = 0;

		for(int i = 2;i <= N;i++){
			while(q && A[q + 1] != A[i])
				q = pi[q];
			if(A[q + 1] == A[i])
				q++;
			pi[i] = q;

			if(q && i % (i - q) == 0)
				mx = max(mx, i);
		}
		g << mx << "\n";

	}


}