Pagini recente » Istoria paginii runda/sim_ix_9_12_20/clasament | Cod sursa (job #1180811) | Cod sursa (job #2188570) | Cod sursa (job #1318780) | Cod sursa (job #642431)
Cod sursa(job #642431)
#include <stdio.h>
#include <string.h>
char v[505];
int dp[505][505][26];
int main()
{
freopen("palm.in","r", stdin);
freopen("palm.out","w", stdout);
scanf("%s",v);
int max,n,i,d,j,k,l;
n=strlen(v);
n--;
for(i=0;i<=n;i++)
dp[i][i][v[i]-96]=1;
for(d=2;d<=n;d++)
{
for(i=0;i+d-1<n;i++)
{
j=i+d-1;
for(k=0;k<=25;k++)
{
if(v[i]==v[j] && v[i]-96==k)
{
for(l=k;l<=25;l++)
{
if (dp[i][j][k]<2+dp[i+1][j-1][l])
dp[i][j][k]=2+dp[i+1][j-1][l];
}
}
else
{
dp[i][j][k]=dp[i+1][j][k];
if (dp[i][j][k]<dp[i][j-1][k])
dp[i][j][k]=dp[i][j-1][k];
}
}
}
}
max=0;
for(i=0;i<=25;i++)
if (max<dp[0][n-1][i])
max=dp[0][n-1][i];
printf("%d",max);
return 0;
}