Pagini recente » Cod sursa (job #2116606) | Cod sursa (job #360257) | Cod sursa (job #529164) | Cod sursa (job #237565) | Cod sursa (job #2878872)
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n;
fin >> n;
vector<vector<int>> dp;
for (int i = 0; i < n; i += 1) {
int num;
fin >> num;
auto placed = false;
for (int j = dp.size() - 1; j >= 0; j -= 1) {
if (num > dp[j].back()) {
dp[j].push_back(num);
placed = true;
break;
}
}
if (!placed) {
if (dp.empty()) {
dp.push_back(vector<int>{num});
} else {
dp.back().back() = num;
}
}
}
fout << dp[0].size() << "\n";
for (const auto& num : dp[0]) {
fout << num << " ";
}
fout << "\n";
return 0;
}