Pagini recente » Cod sursa (job #2134371) | Cod sursa (job #2946830) | Cod sursa (job #2865159) | Cod sursa (job #2418667) | Cod sursa (job #636115)
Cod sursa(job #636115)
# include <fstream>
# include <cstring>
using namespace std;
ifstream f ("palm.in");
ofstream g ("palm.out");
using namespace std;
int lmax[300],poz[300],maxim,maxp,p,i,k,n,fr[300],poz2[300];
char a[1000];
int main ()
{
for (i='a';i<='z';i++)
poz2[i]=-1;
f.getline (a,1000);
n=strlen (a);
for (i=0;i<n;i++)
{
fr[a[i]]++;
if (poz2[a[i]]==-1)
{
poz2[a[i]]=i;
poz[a[i]]=i;
}
maxim=0;
maxp=0;
for (k=a[i];k<='z';k++)
if (lmax[k]!=0)
{
p=poz[k]-1;
while (p>=0)
{
if (a[p]==a[i])
if (maxim<lmax[k]+2)
{
maxim=lmax[k]+2;
maxp=p;
break;
}
else
if (maxim==lmax[k]+2)
if (maxp<p)
{
maxp=p;
break;
}
p--;
}
}
if (maxim<fr[a[i]])
{
maxim=fr[a[i]];
maxp=poz2[a[i]];
}
lmax[a[i]]=maxim;
poz[a[i]]=maxp;
}
maxim=0;
for (i='a';i<='z';i++)
if (maxim<lmax[i])
maxim=lmax[i];
g<<maxim;
return 0;
}