Pagini recente » Cod sursa (job #1151916) | Cod sursa (job #1344134) | Cod sursa (job #3320289) | Cod sursa (job #3320158) | Cod sursa (job #3317761)
#include <fstream>
#define NMAX 100002
using namespace std;
ifstream fin("sclm.in");
ofstream fout("sclm.out");
int n;
int a[NMAX];
int lgmax[NMAX];
int urm[NMAX];
int main()
{
int i,j,maxim,pozurm,pozmax;
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
lgmax[n]=1; urm[n]=0;
for(i=n-1;i>=1;i--)
{
maxim=1; pozurm=0;
for(j=i+1;j<=n;j++)
if(a[i]<a[j] && maxim<1+lgmax[j])
{
maxim=1+lgmax[j]; pozurm=j;
}
lgmax[i]=maxim; urm[i]=pozurm;
}
maxim=lgmax[1]; pozmax=1;
for(i=2;i<=n;i++)
{
if(lgmax[i]>maxim)
{
maxim=lgmax[i]; pozmax=i;
}
}
fout<<maxim<<'\n';
while(pozmax)
{
fout<<a[pozmax]<<' ';
pozmax=urm[pozmax];
}
return 0;
}