Pagini recente » Cod sursa (job #2073935) | Cod sursa (job #2731612) | Cod sursa (job #1068574) | Cod sursa (job #23007) | Cod sursa (job #637453)
Cod sursa(job #637453)
#include <stdio.h>
#include <cstring>
#include <cctype>
struct Date
{
int inceput,lungime;
};
Date din[501];
int main()
{
freopen("palm.in", "r",stdin);
freopen("palm.out", "w",stdout);
char s[501];
scanf("%s",s+1);
int lung = strlen(s+1);
for(int i=1; i<=lung; i++)
{
int jmax=-1,lmax=-1,cmax=-1;
for(int j=i; j>=1; j--)
{
if(s[din[j].inceput]>s[i])
{
for(int k=din[j].inceput; k>=1; k--)
{
if(s[k]==s[i])
{
if(din[j].lungime>lmax)
{
lmax=din[j].lungime;
jmax=j;
cmax=k;
}
}
}
}
}
if(jmax!=-1)
{
din[i].inceput=cmax;
din[i].lungime=din[jmax].lungime+2;
}
else
{
din[i].inceput=i;
din[i].lungime=1;
//ar trebui sa pot include si cel de dinainte!
}
}
int lungmax=-1;
for(int i=1; i<=lung; i++)
if(din[i].lungime>lungmax)
lungmax=din[i].lungime;
printf("%d",lungmax);
return 0;
}