Pagini recente » Cod sursa (job #1247048) | Cod sursa (job #308717) | Cod sursa (job #2806776) | Cod sursa (job #1839233) | Cod sursa (job #648064)
Cod sursa(job #648064)
#include<fstream>
#include<cstring>
#include<algorithm>
using namespace std;
int a[515][515][30], p[515], n, m[30], i, k, c, l, sol, j;
char s[515];
int main()
{
ifstream f("palm.in");
ofstream h("palm.out");
f>>s;
n=strlen(s);
f.close();
for(i=0; i<n; ++i)
p[i]=s[i]-'a';
for(i=n-1; i>=0; --i)
for(j=i; j<n; ++j)
{
c=p[j];
if(i==j)
a[i][j][c]=1;
else //daca litera curenta egala cu prima litera
if (p[i]==c)
for(l=c; l<=25; ++l)
a[i][j][c]=max(a[i][j][c],a[i+1][j-1][l]+2);
for(l=25;l>=0;--l)
m[l]=max(m[l+1],max(a[i+1][j][l],a[i][j-1][l]));
for(c=0;c<=25;++c)
a[i][j][c]=max(a[i][j][c],m[c]);
}
sol=0;
for(i=0; i<n; ++i)
for(j=i; j<n; ++j)
for(l=25; l>=0; --l)
sol=max(sol,a[i][j][l]);
h<<sol<<'\n';
h.close();
return 0;
}