Pagini recente » Cod sursa (job #1753388) | Cod sursa (job #570461) | Cod sursa (job #1046354) | Cod sursa (job #2568407) | Cod sursa (job #727972)
Cod sursa(job #727972)
#include<fstream>
#define NMAX 504
#define ASCII 26
#include<cstring>
#define dim 666
#define diMM 31
#define SPECIAL_FOR for(i=1;i<=n;i++) for(j=n;j>=i;j--) for(k=1;k<=ASCII;k++)
using namespace std;
ifstream f("palm.in");
ofstream g("palm.out");
int d[dim][dim][diMM];
int n;
char s[1005];
int i,j,k;
int rez;
void solve()
{
SPECIAL_FOR
{
d[i][j][k]=max(d[i-1][j][k],d[i][j+1][k]);
if(s[i]==s[j]&&s[i]-'a'+1==k)
d[i][j][k]=max(d[i][j][k],d[i-1][j+1][k]+1);
d[i][j][k]=max(d[i][j][k],d[i][j][k-1]);
}
for(i=1;i<=n;i++)
{
rez=max(rez,2*d[i][i][26]-1);
rez=max(rez,2*d[i][i+1][26]);
}
}
int main()
{
f>>s;
n=strlen(s);
for(i=n;i>=1;i--)
s[i]=s[i-1];
solve();
g<<rez;
return 0;
}