█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 3932

Problema 0xcf - Mirando al horizonte

  • Autor: bryancalisto
  • Fecha: 2021-04-22 03:29:47 UTC (Hace casi 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.004 s 12 KBi
#2
Incorrecto
0.003 s 5 KBi
#3
Correcto
0.004 s 12 KBi
#4
Correcto
0.002 s 2 KBi
#5
Incorrecto
0.004 s 67 KBi
#6
Incorrecto
0.122 s 8 KBi
#7
Correcto
0.086 s 6 KBi
#8
Correcto
0.139 s 6 KBi
#9
Incorrecto
0.115 s 7 KBi
#10
Incorrecto
0.092 s 8 KBi
Puntos totales: 50 / 100

Código

#include <bits/stdc++.h>

using namespace std;

int main()
{
  int c, n, i, j, *alturas, mayorAlturaCercana = 0;

  scanf(" %d", &c);

  for (i = 0; i < c; i++)
  {
    scanf(" %d", &n);
    alturas = (int *)malloc(sizeof(int) * n);
    stack<int> pila;

    for (j = 0; j < n; j++)
    {
      scanf(" %d", &alturas[j]);
    }

    pila.push(-1);
    mayorAlturaCercana = alturas[n - 1];

    for (j = n - 2; j >= 0; j--)
    {
      if (alturas[j] >= mayorAlturaCercana)
      {
        mayorAlturaCercana = alturas[j];
        pila.push(-1);
      }
      else
      {
        pila.push(mayorAlturaCercana);
      }
    }

    printf("Case #%d: ", i + 1);
    while (!pila.empty())
    {
      printf("%d ", pila.top());
      pila.pop();
    }
    printf("\n");

    free(alturas);
  }

  return 0;
}