Cod sursa(job #635604)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 19 noiembrie 2011 13:29:28
Problema PalM Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.82 kb
#include<fstream>
using namespace std;
char s[520];
int n,A[520],lgmax;

void Citire()
{
	int i;
	ifstream fin("palm.in");
	fin>>s;
	fin.close();
	n=strlen(s);
	for(i=0;i<n;i++)
		A[i+1]=s[i]-'a'+1;
}

void Rezolvare()
{
	int i,st,dr,lg;
	for(i=1;i<=n;i++)
	{
		// I
		st=dr=i;
		while(st>1 && dr<n && A[st]>=A[st-1] && A[dr]>=A[dr+1] && A[st-1]==A[dr+1])
		{
			st--;
			dr++;
		}
		lg=dr-st+1;
		lgmax=max(lg,lgmax);
		// II
		if(i<n && A[i]==A[i+1])
		{
			st=i;
			dr=i+1;
			while(st>1 && dr<n && A[st]>=A[st-1] && A[dr]>=A[dr+1] && A[st-1]==A[dr+1])
			{
				st--;
				dr++;
			}
			lg=dr-st+1;
			lgmax=max(lg,lgmax);
		}
	}
}

void Afisare()
{
	ofstream fout("palm.out");
	fout<<lgmax<<"\n";
	fout.close();
}

int main()
{
	Citire();
	Rezolvare();
	Afisare();
	return 0;
}