Cod sursa(job #3202941)

Utilizator laurentiu.maticaMatica Laurentiu-Andrei laurentiu.matica Data 12 februarie 2024 18:21:03
Problema Prefix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
// #include <iostream>

#include <fstream>
#include <string>

using namespace std;

ifstream cin("text.in");
ofstream cout("text.out");
int lps[1000001] = { 0 };
void solveEach()
{
	int r = 0;
	string a;
	getline(cin, a);
	int q = 0, m = a.size();
	for (int i = 2; i <= m; i++)
	{
		while (q && a[q] != a[i - 1])
			q = lps[q];
		if (a[q] == a[i - 1])
			q++;
		lps[i] = q;
	}
	for (int i = 1; i <= m; i++)
		if (i % (i - lps[i]) == 0 && i / (i - lps[i]) > 1)
			r = max(r, i);
	cout << r << '\n';
}
int main()
{
	int n;
	cin >> n;
	cin.get();
	for (int it = 0; it < n; it++)
	{
		solveEach();
	}
	return 0;
}