Cod sursa(job #688389)
#include<fstream.h>
#include<stdio.h>
ofstream g("scmax.out");
long i,poz,n,j,max1,max2,k;
long a[100003],l[100003],s[100003];
int main()
{
FILE * stefi;
stefi=fopen("scmax.in","r");
fscanf(stefi,"%d",&n);
for (i=1;i<=n;i++)
fscanf(stefi,"%d",&a[i]);
l[n]=1; max2=0;
for (i=n-1;i>0;i--)
{ max1=0;
poz=0;
for (j=i+1;j<=n;j++)
{ if (l[j]>max1 && a[j]>a[i])
{ max1=l[j];
poz=j;
}
}
l[i]=l[poz]+1;
s[i]=poz;
if (l[i]>max2)
{
max2=l[i];
k=i;
}
}
g<<max2<<'\n';
while (s[k]!=k)
{
g<<a[k]<<' '; k=s[k];
}
g<<'\n';
g.close();
return 0;
}