Cod sursa(job #2548029)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 16 februarie 2020 08:27:44
Problema Prefix Scor 90
Compilator cpp-64 Status done
Runda amcontrolerdexboxdinmall Marime 0.54 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("prefix.in");
ofstream fout("prefix.out");

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