Pagini recente » Cod sursa (job #514) | Cod sursa (job #1074806) | Cod sursa (job #3291002) | Cod sursa (job #148408) | Cod sursa (job #705234)
Cod sursa(job #705234)
#include <stdio.h>
#define NMAX 100001
int v[NMAX+1];
int n;
int p[NMAX+1];
int sol[NMAX+1];
void print_sol(int i) {
if (i) {
print_sol(p[i]);
printf("%d ", v[i]);
}
}
int solve_n2() {
int i, j, max=0, imax;
sol[1] = 1;
for (i=2; i<=n;i++) {
//sol[i] = 1;
for (j=1; j<i; j++) {
if (v[j]<v[i] && sol[j]>sol[i]) {sol[i] = sol[j]; p[i]=j;}
}
sol[i]++;
if (sol[i]>max) {
max = sol[i];
imax = i;
}
}
printf("%d\n", max);
print_sol(imax);
}
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
int i;
scanf("%d", &n);
for (i=1;i<=n;i++) scanf("%d", v+i);
solve_n2();
return 0;
}