Pagini recente » Cod sursa (job #2841137) | Cod sursa (job #1194313) | Cod sursa (job #804105) | Cod sursa (job #483797) | Cod sursa (job #984380)
Cod sursa(job #984380)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 100003;
int V[NMAX], S[NMAX], P[NMAX], R[NMAX];
int main () {
freopen ("scmax.in", "r", stdin);
freopen ("scmax.out", "w", stdout);
int N, i, k, l = 0;
scanf ("%d", &N);
for (i = 1; i <= N; ++i) {
scanf ("%d", V + i);
k = lower_bound (S + 1, S + l + 1, V[i]) - S;
P[i] = k;
S[k] = V[i];
if (k > l)
l = k;
}
k = l;
printf ("%d\n", k);
for (i = N; k; --i)
if (P[i] == k)
R[k--] = V[i];
for (i = 1; i <= l; ++i)
printf ("%d ", R[i]);
}