Cod sursa(job #2948829)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 28 noiembrie 2022 15:27:43
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
//Duck on the grind
#include<cstdio>
#include<cstring>
typedef signed long long int ll;
const ll MOD=998244353;
const int NMAX=1000005;

char s[NMAX];
int pi[NMAX], N, maxPos;

void pref()
{
	int i, q=0;
	for(i=2;i<N;++i)
	{
		while(q && s[q+1]!=s[i])
			q=pi[q];
		if(s[q+1]==s[i])
			++q;
		pi[i]=q;
		if(q && i%(i-q)==0)
			maxPos=i;
	}
}

int main()
{
	freopen("prefix.in", "r", stdin);
	freopen("prefix.out", "w", stdout);
	int _;
	scanf("%d", &_);
	fgets(s, NMAX, stdin);
	while(_--)
	{
		fgets(s+1, NMAX, stdin);
		N=strlen(s+1);
		if(s[N]=='\n')
			s[N]=0;
		maxPos=0;
		pref();
		printf("%d\n", maxPos);
	}
	return 0;
}