Pagini recente » Cod sursa (job #2292545) | Cod sursa (job #2885570) | Cod sursa (job #432638) | Cod sursa (job #1554626) | Cod sursa (job #640799)
Cod sursa(job #640799)
#include<fstream>
#include<cstring>
#include<cmath>
using namespace std;
char s[510];
int n,best[510][510][27],sol;
void Citire()
{
ifstream fin("palm.in");
fin>>(s+1);
fin.close();
n=strlen(s+1);
}
void Rezolvare()
{
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 Afisare()
{
ofstream fout("palm.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}