Cod sursa(job #635815)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 19 noiembrie 2011 15:00:12
Problema PalM Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.77 kb
#include <cstdio>
#include <cstring>
int main()
{
	int n,i,j,a=1,b,max=1;
	char s[505];
	
	freopen("palm.in","r",stdin);
	freopen("palm.out","w",stdout);
	scanf("%s",s);
	n=strlen(s);
	for (i=1;i<n;++i)
	{
		if (s[i]>s[i-1])
			++a; else
				if (s[i]<s[i-1]) 
				{
					for (j=1;j<a;++j)
						if (s[i+j-1]!=s[i-1-j]) break;
					if ((j-1)*2+1>max) max=(j-1)*2+1;	
					a=1;
				}
					
					else
					{
						--a;
						for (b=2;(i<n) && (s[i+1]==s[i]);++i) ++b;
						if (b>max) max=b;
						if (s[i+1]<s[i])
						{
						for (j=1;j<=a;++j)
							if (s[i+j]!=s[i-b-j+1]) break;
						if (b+2*(j-1)>max) max=b+2*(j-1);
							
						a=1;
						} else
							a+=b;						
					}
	}
	printf("%d\n",max);
return 0;
}