Pagini recente » Cod sursa (job #14013) | Cod sursa (job #2577963) | Cod sursa (job #2958036) | Cod sursa (job #2958889) | Cod sursa (job #2393191)
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
vector<int> longestIncreasingSubsequence(vector<int> &nums) {
vector<int> a;
for (auto v : nums) {
auto it = lower_bound(a.begin(), a.end(), v);
if (it == a.end()) {
a.push_back(v);
} else {
*it = v;
}
}
return a;
}
int main() {
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; ++i)
cin >> a[i];
auto res = longestIncreasingSubsequence(a);
cout << res.size() << endl;
for (auto v : res)
cout << v << " ";
cout << endl;
}