Pagini recente » Cod sursa (job #1452965) | Cod sursa (job #336620) | Cod sursa (job #1018154) | Cod sursa (job #832208) | Cod sursa (job #1785996)
#include <fstream>
using namespace std;
int a[100003], n, l[100003], lmax;
int main()
{
freopen ("scmax.in", "r", stdin);
freopen ("scmax.out", "w", stdout);
scanf ("%d\n", &n);
for (int i = 0; i < n; i++)
scanf ("%d", &a[i]);
for (int i = n - 1; i >= 0; i--)
{
int maxi = 0;
for (int j = i + 1; j < n; j++)
if (a[j] > a[i])
maxi = max (maxi, l[j]);
l[i] = 1 + maxi;
lmax = max (lmax, l[i]);
}
printf ("%d\n", lmax);
for (int i = 0; i < n; i++)
if (lmax == l[i])
{
printf ("%d ", a[i]);
lmax--;
}
return 0;
}