Pagini recente » Cod sursa (job #633290) | Cod sursa (job #2168760) | Cod sursa (job #1632894) | Cod sursa (job #1722942) | Cod sursa (job #638121)
Cod sursa(job #638121)
#include<cstdio>
#include<cstring>
#define maxim(a,b) a>b?a:b
void read(),solve();
char A[510],B[510],L[510][510];
int len,i,st,dr,SOL[510][510],j,sol;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("palm.in","r",stdin);
freopen("palm.out","w",stdout);
scanf("%s",A+1);
}
void solve()
{
len=strlen(A+1);
for(i=len;i>=1;i--)B[i]=A[len-i+1];
for(i=1;i<=len;i++)
for(j=1;j<=len;j++)
{
if(A[i]==B[j]&&A[i]>=L[i-1][j-1]){SOL[i][j]=SOL[i-1][j-1]+1;L[i][j]=A[i];continue;}
if(SOL[i-1][j]>SOL[i][j-1])
{
SOL[i][j]=SOL[i-1][j];L[i][j]=L[i-1][j];
}
else
{
SOL[i][j]=SOL[i][j-1];L[i][j]=L[i][j-1];
}
}
for(i=1;i<=len;i++)sol=maxim(sol,SOL[i][len-i+1]);
printf("%d\n",sol*2+1);
}