Cod sursa(job #936525)
Utilizator | Data | 7 aprilie 2013 15:27:32 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, a;
vector<int> ans;
vector<int>::iterator it;
fin >> n;
for (; n > 0; --n) {
fin >> a;
it = lower_bound(ans.begin(), ans.end(), a);
if (it != ans.end()) *it = a;
else ans.push_back(a);
}
fout << ans.size() << '\n';
for (it = ans.begin(); it != ans.end(); ++it)
fout << *it << ' ';
return 0;
}