Pagini recente » Cod sursa (job #3262765) | Cod sursa (job #859913) | Cod sursa (job #1945563) | Cod sursa (job #1494819) | Cod sursa (job #530067)
Cod sursa(job #530067)
#include <stdio.h>
int a[100010];
int n;
int l[100010];
int wh[100010];
void printRec(int m) {
if (m == -1) return;
else {
printRec(wh[m]);
printf("%d ",a[m]);
}
}
int main() {
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i = 0; i < n; i++)
wh[i] = -1;
for(int i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
for(int i = 0; i < n; i++) {
l[i] = 1;
for(int j = 0; j < i; j++)
if (a[i] > a[j])
if (l[i] < l[j] + 1) {
l[i] = l[j] + 1;
wh[i] = j;
}
}
int max = 0;
int poz = 0;
for(int i = 0; i < n; i++)
if (max < l[i]) {
max = l[i];
poz = i;
}
printf("%d\n",max);
printRec(poz);
}