Cod sursa(job #2898844)

Utilizator Alex_HossuHossu Alexandru Alex_Hossu Data 7 mai 2022 12:46:48
Problema Subsir crescator maximal Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#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;
}