Pagini recente » Cod sursa (job #2172560) | Cod sursa (job #109362) | Cod sursa (job #2291615) | Cod sursa (job #1107459) | Cod sursa (job #1228011)
#include<fstream>
#include<cstring>
#include<cmath>
using namespace std;
char s[510];
int n,best[510][510][27],sol;
void read()
{
ifstream fin("palm.in");
fin>>(s+1);
n=strlen(s+1);
}
void solve()
{
int i,j,d,k;
for(i=1;i<=n;i++)
best[i][i][s[i]-'a']=1;
for(d=2;d<=n;d++)
{
for(i=1,j=d;i<=n && j<=n;i++,j++)
{
if(s[i]==s[j])
{
best[i][j][s[i]-'a']=2;
if(j-i+1>=3)
{
for(k=s[i]-'a';k<26;k++)
best[i][j][s[i]-'a']=max(best[i][j][s[i]-'a'],2+best[i+1][j-1][k]);
}
}
for(k=0;k<26;k++)
{
best[i][j][k]=max(best[i][j][k],max(best[i+1][j][k],best[i][j-1][k]));
}
}
}
for(k=0;k<26;k++)
sol=max(sol,best[1][n][k]);
}
void print()
{
ofstream fout("palm.out");
fout<<sol<<"\n";
}
int main()
{
read();
solve();
print();
return 0;
}