Pagini recente » Cod sursa (job #1187368) | Cod sursa (job #2372169) | Cod sursa (job #100339) | Cod sursa (job #1401939) | Cod sursa (job #637128)
Cod sursa(job #637128)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("palm.in");
ofstream g("palm.out");
string s;
int i,n,v[501],sol=0,l[501][501],maxi,j;
int main () {
f >> s;
n=s.size();
for (i=1;i<=n;i++) v[i]=int(s[i-1])-int('a')+1;
for (i=1;i<=n;i++) l[i][i]=1;
for (j=1;j<=n;j++) {
for (i=1;i<=n-j;i++) {
if (v[i]==v[i+j] && (v[i+j]<=v[i+j-1])) {
l[i][i+j]=l[i+1][i+j-1]+2;
}
else {
if (v[i]==v[i+j]) {
l[i][i+j]=l[i+1][i+j-1];
if (l[i][i+j]==1) l[i][i+j]=2;
}
l[i][i+j]=max(l[i][i+j],max(l[i+1][i+j],l[i][i+j-1]));
}
maxi=max(maxi,l[i][i+j]);
}
}
/*for (i=1;i<=n;i++) {
for (j=1;j<=n;j++) g << l[i][j] << ' ';
g << '\n';
}*/
g << maxi << '\n';
f.close();g.close();
return 0;
}