Pagini recente » Cod sursa (job #2291445) | Cod sursa (job #1186859) | Cod sursa (job #91606) | Cod sursa (job #85672) | Cod sursa (job #1378767)
#include <iostream>
#include <stdio.h>
using namespace std;
long long n,v[10000000],t[10000000],l[1000000],m,p,s[100000];
int main()
{
freopen ("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d",&v[i]);
}
int u,u1;
l[1]=1;
t[1]=0;
for(int i=2; i<=n; i++)
{
l[i]=1;
t[i]=0;
for(int j=1; j<=i; j++)
{
if(v[j]<v[i]&&l[j]+1>l[i])
{
l[i]=l[j]+1;
t[i]=j;
if(m<l[i])
{
m=l[i];
p=i;
}
}
}
}
int i;
i=p;
u=0;
while(i>0)
{
s[++u]=v[i];
i=t[i];
}
printf("%d\n",u);
for(int i=u;i>=1;i--)
printf("%d ",s[i]);
return 0;
}