Pagini recente » Cod sursa (job #1528183) | Cod sursa (job #1203457) | Cod sursa (job #1262426) | Cod sursa (job #1066986) | Cod sursa (job #3346280)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
vector<int> v;
vector<int> pos;
vector<int> sol;
int maxl=0;
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=lower_bound(v.begin(),v.end(),x)-v.begin();
v[k]=x;
pos.push_back(k);
}
if (pos[pos.size()-1]>maxl) {
maxl=pos[pos.size()-1];
sol=v;
}
}
out<<maxl<<'\n';
for (int j=0;j<sol.size();j++) {
out<<sol[j]<<' ';
}
return 0;
}