Pagini recente » Cod sursa (job #1482230) | Cod sursa (job #2171176) | Cod sursa (job #1302387) | Cod sursa (job #2113407) | Cod sursa (job #3244440)
#include <bits/stdc++.h>
using namespace std;
int a[10005], len[10005], ind[10005];
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, ind[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 = ind[pos];
}
cout << maxim << "\n";
for (int i = ans.size()-1; i >= 0; ++i)
cout << ans[i] << " ";
return 0;
}