Pagini recente » Cod sursa (job #1712386) | Cod sursa (job #948732) | Cod sursa (job #2666075) | Cod sursa (job #1373624) | Cod sursa (job #1785995)
#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]);
scanf ("%d", &a[n - 1]);
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;
}