Pagini recente » Cod sursa (job #1195020) | Cod sursa (job #2344403) | Cod sursa (job #2986412) | Cod sursa (job #2879549) | Cod sursa (job #1785921)
#include <iostream>
#include <cstdio>
using namespace std;
int a[100001],n;
int d[100001];
int p[100001];
void afisare(int k)
{
if(p[k]!=0)
afisare(p[k]-1);
printf("%d ",a[k]);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
int m=0;
for(int i=0; i<n; i++)
for(int j=0; j<i; j++)
{
if(a[i]>a[j])
if(d[i]<=d[j])
{
d[i]=d[j]+1;
p[i]=j+1;
if(d[i]>d[m])
m=i;
}
}
printf("%d\n",d[m]+1);
afisare(m);
//for(int i=0;i<n;i++)
// cout<<p[i]<<" ";
return 0;
}