Cod sursa(job #637200)
# include <fstream>
# include <cstring>
using namespace std;
ifstream f ("palm.in");
ofstream g ("palm.out");
using namespace std;
int a[1005][300],i,j,k,q,maxim,n;
char s[1000];
int main ()
{
f.getline (s,1000);
n=strlen (s);
for (i=0;i<n;i++)
{
for (j=0;j<i;j++)
if (s[j]==s[i])
{
maxim=0;
for (k=j+1;k<i;k++)
for (q=s[i];q<='z';q++)
if (maxim<a[k][q])
maxim=a[k][q];
if (maxim==0)
a[j][s[j]]=2;
else
a[j][s[j]]=maxim+2;
}
if (a[j][s[j]]==0)
a[j][s[j]]=1;
}
maxim=0;
for (i=0;i<n;i++)
for (j='a';j<='z';j++)
if (maxim<a[i][j])
maxim=a[i][j];
g<<maxim;
return 0;
}