Cod sursa(job #1006822)

Utilizator andreiiiiPopa Andrei andreiiii Data 7 octombrie 2013 20:09:29
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#include <cstring>
#define N 1000002
using namespace std;

char a[N];

int main()
{
	freopen("prefix.in", "r", stdin);
	freopen("prefix.out", "w", stdout);
	int n, t, i, sol, l, dr;
	scanf("%d\n", &t);
	a[0]='0';
	for(;t;t--)
	{
		memset(a+1, 0, sizeof(a)-1);
		gets(a+1);
		n=strlen(a)-1;
		sol=dr=0;
		l=1;
		for(i=2;i<=n;i++)
		{
			if(a[i]==a[i-l]&&(i==n||a[i+1]==a[i-l+1]||dr%l+1==l))
			{
				dr++;
			}
			else
			{
				l=i;
				dr=0;
			}
			if(dr==l)
			{
				dr=0;
				sol=i;
			}
		}
		printf("%d\n", sol);
	}
}