Pagini recente » Cod sursa (job #2124727) | Cod sursa (job #3213281) | Cod sursa (job #2923656) | Cod sursa (job #1834520) | Cod sursa (job #2285267)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
void showSol(int i, const vector< int > &pre, const vector< int > &v) {
if(pre[i] == -1) {
out << v[i] << " ";
return;
}
showSol(pre[i], pre, v);
out << v[i] << " ";
}
int main() {
ios::sync_with_stdio(false); in.tie(0); out.tie(0);
int n; in >> n;
vector< int > v(n + 1);
for(int i = 1; i <= n; ++i) {
in >> v[i];
}
vector< int > dp(n + 1, 1), pre(n + 1, -1);
for(int i = 2; i <= n; ++i) {
for(int j = 1; j < i; ++j) {
if(v[j] < v[i]) {
dp[i] = max(dp[i], dp[j] + 1);
pre[i] = j;
}
}
}
out << dp[n] << "\n";
showSol(n, pre, v);
in.close(); out.close();
return 0;
}