Pagini recente » Cod sursa (job #1108910) | Cod sursa (job #2660486) | Cod sursa (job #2599502) | Cod sursa (job #816704) | Cod sursa (job #2690195)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100000
#define MAXVAL 2000000000
int v[MAXN][2], out[MAXN];
int main()
{
FILE *fin, *fout;
int n, i, j, max, cmax, unr;
fin = fopen("scmax.in", "r");
fscanf(fin, "%d", &n);
for(i = 0; i < n; i++){
fscanf(fin, "%d", &v[i][0]);
}
fclose(fin);
max = 0;
for(i = 0; i < n; i++){
for(j = 0; j < i; j++){
if((v[i][1] < v[j][1]) && (v[j][0] < v[i][0])){
v[i][1] = v[j][1];
}
}
v[i][1]++;
if(max < v[i][1]){
max = v[i][1];
}
}
fout = fopen("scmax.out", "w");
fprintf(fout, "%d\n", max);
cmax = max;
unr = MAXVAL;
for(i = n - 1; 0 <= i; i--){
if((v[i][1] == cmax) && (v[i][0] < unr)){
unr = out[cmax - 1] = v[i][0];
cmax--;
}
}
for(i = 0; i < max; i++){
fprintf(fout, "%d ", out[i]);
}
fclose(fout);
return 0;
}