Pagini recente » Cod sursa (job #2506911) | Cod sursa (job #2527382) | Cod sursa (job #2505534) | Cod sursa (job #475113) | Cod sursa (job #1785905)
#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]);
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]+1)
{
d[i]=d[j]+1;
p[i]=j;
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;
}