Pagini recente » Cod sursa (job #1412955) | Cod sursa (job #717108) | Cod sursa (job #1035413) | Cod sursa (job #3217371) | Cod sursa (job #2361316)
#include <cstdio>
using namespace std;
const int NMAX=100005;
int v[NMAX],l[NMAX],urm[NMAX];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n,i,lis,poz,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
l[n]=1;
urm[n]=0;
for(i=n-1;i>=1;i--)
{
l[i]=1;
for(j=i+1;j<=n;j++)
{
if(v[i]<v[j])
{
if(l[j]+1>l[i])
{
l[i]=l[j]+1;
urm[i]=j;
}
}
}
}
lis=l[1];
poz=1;
for(i=2;i<=n;i++)
{
if(l[i]>lis)
{
lis=l[i];
poz=i;
}
}
printf("%d\n",lis);
while(poz!=0)
{
printf("%d ",v[poz]);
poz=urm[poz];
}
return 0;
}