Pagini recente » Cod sursa (job #1979452) | Cod sursa (job #807343) | Cod sursa (job #1606242) | Cod sursa (job #485801) | Cod sursa (job #739398)
Cod sursa(job #739398)
#include <cstdio>
#include <vector>
#include <algorithm>
#define MAX 100001
using namespace std;
vector<int>Q;
vector<int>::iterator it;
int n,V[MAX],BST[MAX];
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&V[i]);
for(int i=0;i<n;i++){
it=lower_bound(Q.begin(),Q.end(),V[i]);
if(it==Q.end()){
Q.push_back(V[i]);
BST[i]=Q.size(); } else {
*it=V[i];
BST[i]=it-Q.begin()+1; }
}
printf("%d\n",Q.size());
for(int i=0;i<Q.size();i++)printf("%d ",Q[i]);
}