Pagini recente » Cod sursa (job #2130372) | Cod sursa (job #1547951) | Cod sursa (job #335041) | Cod sursa (job #780418) | Cod sursa (job #2898844)
#include <stdio.h>
int v[100000];
int len[100000];
int rMax[100000];
int rActual[100000];
int main() {
FILE *fin, *fout;
int n;
int i, j;
int indM, indA;
int res;
fin = fopen("scmax.in", "r");
fscanf(fin, "%d", &n);
for (i = 0; i < n; i++)
fscanf(fin, "%d", &v[i]);
fclose(fin);
res = 0;
for (i = 0; i < n; i++) {
len[i] = 1; indA = 0;
for(j = 0; j < i; j++)
if (v[i] > v[j] && len[i] < len[j] + 1) {
len[i] = len[j] + 1;
rActual[indA++] = v[j];
}
rActual[indA] = v[i];
if (res < len[i]) {
for (j = 0; j <= indA; j++)
rMax[j] = rActual[j];
indM = indA;
res = len[i];
}
}
fout = fopen("scmax.out", "w");
fprintf(fout, "%d\n", res);
for (i = 0; i <= indM; i++)
fprintf(fout, "%d ", rMax[i]);
fclose(fout);
return 0;
}