Pagini recente » Cod sursa (job #2148051) | Cod sursa (job #1421129) | Cod sursa (job #1279158) | Cod sursa (job #707964) | Cod sursa (job #2029145)
#include <stdio.h>
#define MAX 100005
int n, a[MAX], b[MAX], p[MAX], lenb;
void print(int pos, int n) {
while(p[n] != pos)
--n;
if(pos > 1)
print(pos - 1, n - 1);
printf("%d ", a[n]);
}
int main() {
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
int j;
for(int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
j = 1;
while(b[j] < a[i] && j <= lenb)
++j;
b[j] = a[i];
p[i] = j;
if(lenb < j)
lenb = j;
}
printf("%d\n", lenb);
print(lenb, n);
return 0;
}