Pagini recente » Cod sursa (job #1516285) | Cod sursa (job #97111) | Cod sursa (job #2398173) | Cod sursa (job #1624555) | Cod sursa (job #636551)
Cod sursa(job #636551)
#include <fstream>
#include <cstring>
#define max(a,b) ((a<b)?b:a)
using namespace std;
int a[502][502][27],i,j,n,l,Max;
string s;
int main()
{
ifstream fi("palm.in");
ofstream fo("palm.out");
fi>>s;
n=s.length();
for(i=n;i>0;i--)
for(a[i][i][s[i-1]-'a']=1,j=i+1;j<=n;j++)
if(s[i-1]==s[j-1])
{
for(Max=0,l=s[i-1]-'a';l<26;l++)
if(Max<a[i+1][j-1][l]+2) Max=a[i+1][j-1][l]+2;
a[i][j][s[i-1]-'a']=Max;
for(l=0;l<26;l++)
if(l!=s[i-1]-'a') a[i][j][l]=max(a[i+1][j][l],a[i][j-1][l]);
} else
for(l=0;l<26;l++) a[i][j][l]=max(a[i+1][j][l],a[i][j-1][l]);
for(Max=0,l=0;l<26;l++) if(a[1][n][l]>Max) Max=a[1][n][l];
fo<<Max<<"\n";
return 0;
}