Pagini recente » Cod sursa (job #3203569) | Cod sursa (job #2631174) | Cod sursa (job #63080) | Cod sursa (job #251740) | Cod sursa (job #2309145)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,c,S[100001],sol;
int bin(int c, int n){
int l=0,r=n-1,m=(l+r)/2;
while(l+1<r){
if(S[m]<c)l=m;
else if(S[m]>c) r=m;
else break;
m=(l+r)/2;
}
while(S[m]<c && m<n)m++;
return m;
}
int main(){
fin>>n;
fin>>S[0];
sol=1;
for(int i=1;i<n;i++){
fin>>c;
int ind=bin(c,sol);
if(ind<sol)S[ind]=c;
else S[sol++]=c;
}
fout<<sol<<'\n';
for(int i=0;i<sol;i++){
fout<<S[i]<<' ';
}
}