Pagini recente » Cod sursa (job #319601) | Cod sursa (job #2440068) | Cod sursa (job #1822496) | Cod sursa (job #2134132) | Cod sursa (job #1668287)
#include <fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,i,j,nrs,nr,lmin,poz,v[5001],p[5001],t[5001];
int main()
{ f>>n;
for(i=1;i<=n;++i)
f>>v[i];
t[n]=0;
p[n]=1;
for(i=n-1;i>=1;--i)
{nr=0;
lmin=32000;
for(j=i+1;j<=n;++j)
if(v[j]>v[i])
{nr++;
if(v[j]<lmin)
{lmin=v[j];
poz=j;
}}
if(nr==0)
{p[i]=1;
t[i]=0;
}
else
{
p[i]=p[poz]+1;
t[i]=poz;
}
}
/* for(i=1;i<=n;++i)
g<<p[i]<<' ';
g<<'\n';
for(i=1;i<=n;++i)
g<<t[i]<<' ';
g<<'\n'; */
g<<p[1]<<'\n';
g<<v[1]<<' ';
nrs=p[1];
poz=v[1];
for(i=2;i<=n&&nrs>0;++i)
if(p[v[i]]<=nrs&&v[i]>poz)
{g<<v[i]<<' ';
nrs--;
poz=v[i];
}
return 0;
}