Pagini recente » Unlucky... | Monitorul de evaluare | Cod sursa (job #884076) | Istoria paginii utilizator/snavenport | Cod sursa (job #174983)
Cod sursa(job #174983)
#include<fstream.h>
#define dim 100001
ifstream f("scmax.in");
ofstream g("scmax.out");
unsigned long a[dim];
struct max
{unsigned long lg;
unsigned long p;
};
max v[dim];
int main()
{unsigned long n,i,j,maxim,mm=0,parinte,poz;
f>>n;
for(i=1;i<=n;++i) f>>a[i];
f.close();
for(i=1;i<=n;i++)
{maxim=0;parinte=i;
for(j=i-1;j>=1;--j)
if(a[j]<a[i])
if(v[j].lg>maxim)
{maxim=v[j].lg;
parinte=j;
}
v[i].lg=maxim+1;
if(v[i].lg>mm) {mm=v[i].lg;poz=i;}
v[i].p=parinte;
}
g<<mm<<'\n';
i=poz;
j=1;
do
{v[j].lg=a[i];
++j;
i=v[i].p;
}
while(v[i].p!=i);
v[j].lg=a[i];
for(i=j;i>=1;--i) g<<v[i].lg<<" ";
g<<'\n';
g.close();
return 0;
}