Cod sursa(job #639023)

Utilizator mottyMatei-Dan Epure motty Data 22 noiembrie 2011 10:00:25
Problema PalM Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>

using namespace std;

const int N = 505;

int n;
char s[N];

int GetPalm(int lf, int rt)
{
	if (lf != rt)
		return 1;

	while (s[lf-1] < s[lf] && lf > 1 && rt < n && s[lf-1] == s[rt+1])
		--lf, ++rt;

	return (rt - lf + 1);
}

int SolveA()
{
	int rez = 0;

	for (int i = 1; i <= n; ++i)
	{
		int x = GetPalm(i, i);
		if (x > rez)
			rez = x;
	}

	return rez;
}

int SolveB()
{
	int rez = 0;

	for (int i = 1; i < n; ++i)
	{
		int x = GetPalm(i, i + 1);
		if (x > rez)
			rez = x;
	}

	return rez;
}

int main()
{
	freopen("palm.in", "r", stdin);
	freopen("palm.out", "w", stdout);

	gets(s+1);
	n = strlen(s+1);

	int a, b;
	a = SolveA();
	b = SolveB();

	printf("%d\n", (a>b ? a:b));

	return 0;
}