Pagini recente » Cod sursa (job #2363957) | Monitorul de evaluare | Cod sursa (job #838892) | Cod sursa (job #287344) | Cod sursa (job #2001161)
#include <bits/stdc++.h>
#define LMAX 1000
using namespace std;
int v[LMAX],Max[LMAX],T[LMAX];
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
for(int i=1;i<=n+1;++i)
Max[i]=INT_MAX;
for(int i=1;i<=n;++i){
int poz=lower_bound(Max+1,Max+n+2,v[i])-Max;
Max[poz]=v[i];
T[poz]=i;
}
for(int i=1;i<=n+1;++i)
if(Max[i]==INT_MAX){
printf("%d\n",i-1);
for(int j=1;j<=i-1;++j) printf("%d ",v[T[j]]);
return printf("\n",0);
}
}