Pagini recente » Cod sursa (job #1637832) | Cod sursa (job #1774379) | Cod sursa (job #1947607) | Cod sursa (job #2947916) | Cod sursa (job #2062149)
#include<stdio.h>
#include<stdlib.h>
int main() {
int n;
long t[100001] = { 0 }, l[100001] = { 0 };
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &t[i]);
int m = -1;
for (int i = 1; i < n; i++) {
for(int j=0;j<i;j++)
if (t[j] < t[i] && l[i]<l[j]+1) {
l[i] = l[j] + 1;
if (m < l[i])m = l[i];
}
}
printf("%d\n", m+1);
int max = -1;
for (int i = 0; i <n; i++)
if (l[i] > max) {
while (l[i] == l[i + 1])i++;
printf("%d ", t[i]);
max = l[i];
}
return 0;
}