Pagini recente » Cod sursa (job #2078640) | Cod sursa (job #2272029) | Cod sursa (job #2183740) | Cod sursa (job #2859920) | Cod sursa (job #185895)
Cod sursa(job #185895)
#include <iostream>
#define FIN "scmax.in"
#define FOUT "scmax.out"
#define MAX_N 100010
using namespace std;
int target,v[MAX_N],n;
void cbin(int p,int u,int vl){
if (p<=u){
int m=(p+u)/2;
if (v[m]>=vl){
target=m;
cbin(p,m-1,vl);
} else cbin(m+1,u,vl);
}
return ;
}
int main(void){
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
cin>>n;
int len=0,x;
for (int i=1;i<=n;++i){
cin>>x;
target=len+1;
cbin(1,len,x);
v[target]=x;
if (target>len)++len;
}
cout<<len<<"\n";
for (int i=1;i<len;++i)printf("%d ",v[i]);
printf("%d\n",v[len]);
fclose(stdin);
fclose(stdout);
return 0;
}