Cod sursa(job #2548188)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 16 februarie 2020 13:01:18
Problema Prefix Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <bits/stdc++.h>
 
using namespace std;
 
ifstream fin("prefix.in");
ofstream fout("prefix.out");

vector <int> phi;

main()
{
	int n;
	fin >> n;
	
	for(int i = 1; i <= n; i++)
	{
		string s;
		fin >> s;

		int l = s.size();
		int pos = 0;
		
		phi.assign(l + 1, 0);
		
		int ans = 0;
		int k = 0;
		
		for(int i = 2; i <= l; i++)
		{
			while(k && s[k] != s[i - 1])
				k = phi[k];
			
			if(s[k] == s[i - 1])
				k++;
			
			phi[i] = k;
			
			if(phi[i] != 0 && i % (i - phi[i]) == 0)
				ans = i;
		}
		
		fout << ans << '\n';
	}
}