Pagini recente » Cod sursa (job #474380) | Cod sursa (job #2208071) | Cod sursa (job #1308620) | Cod sursa (job #1884006) | Cod sursa (job #2259540)
#include <stdio.h>
#include <string.h>
#define NMAX 100000
static int num[NMAX], seq[NMAX], sol[NMAX];
int main(void)
{
int n, i, seq_len, j;
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
seq_len = 0;
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
if (num[i] < seq[0] || i == 0) {
seq[0] = num[i];
if (seq_len == 0) {
seq_len = 1;
}
continue;
}
for (j = seq_len - 1; j >= 0; j--) {
if (seq[j] < num[i]) {
if (seq[j + 1] > num[i] || j + 1 == seq_len) {
seq[j + 1] = num[i];
if (j == seq_len - 1) {
seq_len++;
memcpy(sol, seq, seq_len * sizeof seq[0]);
}
break;
}
}
}
}
printf("%d\n", seq_len);
for (i = 0; i < seq_len; i++) {
printf("%d%c", sol[i], " \n"[i == seq_len - 1]);
}
return 0;
}