Pagini recente » Cod sursa (job #981270) | Cod sursa (job #2707767) | Cod sursa (job #398103) | Cod sursa (job #2438154) | Cod sursa (job #929794)
Cod sursa(job #929794)
#include <cstdio>
#include <algorithm>
#define rd scanf
#define wr printf
using namespace std;
int a[100010], v[100010], b[100010];
int main()
{
freopen ("scmax.in", "r", stdin);
freopen ("scmax.out", "w", stdout);
int n;
rd ("%d", &n);
int maxsc = 0, poz = 0;
for (int i = 1, j, m; i <= n; i++)
{
rd ("%d", &v[i]);
for (j = i - 1, m = 0; j >= 0; j--)
if (v[j] < v[i])
{
if (m < a[j]) {m = a[j]; b[i] = j;}
}
a[i] = m + 1;
if (m + 1 > maxsc) {maxsc = m + 1; poz = i;}
}
wr ("%d\n", maxsc);
int k = 0;
for (int i = poz; i; i = b[i])
a[++k] = v[i];
for (int i = k; i; i--)
wr ("%d ", a[i]);
wr ("\n");
return 0;
}