Pagini recente » Cod sursa (job #911757) | Cod sursa (job #1277836) | Cod sursa (job #791680) | Cod sursa (job #607859) | Cod sursa (job #644830)
Cod sursa(job #644830)
//eudanip
#include<stdio.h>
#include<string.h>
#define NMAX 504
#define maxim(a,b) (a>b ? a : b)
int d[NMAX][NMAX][31];
int sol,nr;
char s[1005];
int main ()
{
int i,j,k;
freopen("palm.in","r",stdin);
freopen("palm.out","w",stdout);
scanf("%s",s);
nr=strlen(s);
for(i=nr;i>=1;i--)
s[i]=s[i-1];
for(i=1;i<=nr;i++)
for(j=nr;j>=i;j--)
for(k=1;k<=26;k++)
{
d[i][j][k]=maxim(d[i-1][j][k],d[i][j+1][k]);
if(s[i]==s[j] && s[i]-'a'+1==k)
d[i][j][k]=maxim(d[i][j][k],d[i-1][j+1][k]+1);
d[i][j][k]=maxim(d[i][j][k],d[i][j][k-1]);
}
for(i=1;i<=nr;i++)
{
sol=maxim(sol,2*d[i][i][26]-1);
sol=maxim(sol,2*d[i][i+1][26]);
}
printf("%d\n",sol);
return 0;
}