Pagini recente » Cod sursa (job #3326478) | Cod sursa (job #3312409) | Borderou de evaluare (job #3337521) | Cod sursa (job #3339635) | Cod sursa (job #3346277)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
vector<int> v;
vector<int> pos;
int main() {
int n;
in >> n;
for (int i = 1; i <= n; i++) {
int x;
in >> x;
if (v.empty() || x>v[v.size()-1]) {
v.push_back(x);
pos.push_back(v.size());
}
else {
int k=upper_bound(v.begin(),v.end(),x)-v.begin();
v[k]=x;
pos.push_back(k);
}
}
out<<pos[pos.size()-1]<<'\n';
for (int i=0;i<v.size();i++) {
out<<v[i]<<' ';
}
return 0;
}