Cod sursa(job #635855)

Utilizator ProtomanAndrei Purice Protoman Data 19 noiembrie 2011 15:17:34
Problema PalM Scor 60
Compilator cpp Status done
Runda .com 2011 Marime 0.66 kb
#include <algorithm>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int maxGs = 0;
int sol[512][512];

int main()
{
	ifstream cin("palm.in");
	ofstream cout("palm.out");

	string str;
	cin >> str;

	for (int i = 0; i < str.size(); i++)
		sol[i][i] = 1;
	for (int ch = 'z'; ch >= 'a'; ch--)
		for (int l = 2; l < str.size(); l++)
			for (int i = 0; i + l < str.size(); i++)
			{
				int x = i, y = i + l;

				if (str[x] == str[y] && str[x] == ch)
					sol[x][y] = sol[x + 1][y - 1] + 2;

				sol[x][y] = max(sol[x][y], max(sol[x + 1][y], sol[x][y - 1]));
			}

	cout << sol[0][str.size() - 1];

	return 0;
}