Pagini recente » Cod sursa (job #333105) | Cod sursa (job #1978501) | Cod sursa (job #535193) | Cod sursa (job #3153716) | Cod sursa (job #2762861)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main() {
int n; fin >> n;
vector<int> a(n);
for(int &x: a)
fin >> x;
int ans_v = 1, last_prev = -1;
vector<int> dp(n, 1);
vector<int> prev(n, -1);
for(int i = 0; i < n; ++i)
for(int j = 0; j < i; ++j)
if(a[i] > a[j] and dp[i] < dp[j] + 1) {
dp[i] = dp[j] + 1;
prev[i] = j;
if(dp[i] > ans_v)
ans_v = dp[i],
last_prev = i;
}
fout << ans_v << '\n';
vector<int> ans(ans_v);
while(last_prev != -1)
ans[--ans_v] = a[last_prev],
last_prev = prev[last_prev];
for(int x: ans)
fout << x << ' ';
return 0;
}