Cod sursa(job #1163086)
Utilizator | Data | 1 aprilie 2014 10:08:00 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
#define oo (1<<31)-1
#define N 100005
int n,i,sol,cnt,poz,a[N],v[N],o[N],s[N];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]); v[i]=oo;
poz=lower_bound(v+1,v+i+1,a[i])-v;
sol=max(sol,poz);
v[poz]=a[i]; o[i]=poz;
}
printf("%d\n",sol);
for(i=1;i<=sol;i++) printf("%d ",v[i]);
return 0;
}