Pagini recente » Cod sursa (job #234788) | Cod sursa (job #2790377) | Cod sursa (job #849529) | Cod sursa (job #286686) | Cod sursa (job #1645048)
#include <fstream>
#include <iostream>
#define DIM 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int N,v[DIM];
int w[DIM];
int nr;
int main(){
fin >> N;
for(int i=1;i<=N;i++){
fin >> v[i];
if(v[i]>v[w[nr]])
w[++nr]=i;
else{
int p=1;
int u=nr;
while(p<=u){
int mid=(p+u)>>1;
if(v[i]>v[w[mid]])
p=mid+1;
else
u=mid-1;
}
p--;
if(v[i]>v[w[p]]){
w[p+1]=i;
}
}
}
fout << nr << "\n";
for(int i=1;i<=nr;i++)
fout << v[w[i]] << " ";
}