Pagini recente » Cod sursa (job #42074) | Cod sursa (job #2757685) | Cod sursa (job #2308896) | Cod sursa (job #1836691) | Cod sursa (job #3244434)
#include <bits/stdc++.h>
using namespace std;
int a[100005], len[100005], index[100005];
int main()
{
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> a[i];
for (int i = 1; i <= n; ++i)
for (int j = 0; j < i; ++j)
if (a[i] > a[j] && len[j] + 1 > len[i])
len[i] = len[j] + 1, index[i] = j;
int maxim = len[1], pos = -1;
for (int i = 2; i <= n; ++i)
if (len[i] > maxim)
maxim = len[i], pos = i;
vector<int> ans;
while (pos != 0)
{
ans.push_back(a[pos]);
pos = index[pos];
}
cout << maxim << "\n";
for (int i = ans.size()-1; i >= 0; ++i)
cout << ans[i] << " ";
return 0;
}