Cod sursa(job #3346277)
| Utilizator | Data | 13 martie 2026 08:44:07 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 10 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#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;
}