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

Envío 3940

Problema 0xcf - Mirando al horizonte

  • Autor: bryancalisto
  • Fecha: 2021-04-24 01:37:27 UTC (Hace más de 3 años)
Caso # Resultado Tiempo Memoria
#1
Incorrecto
0.004 s 1 KBi
#2
Incorrecto
0.004 s 2 KBi
#3
Incorrecto
0.005 s 2 KBi
#4
Incorrecto
0.005 s 2 KBi
#5
Incorrecto
0.006 s 2 KBi
#6
Incorrecto
0.107 s 7 KBi
#7
Incorrecto
0.101 s 5 KBi
#8
Incorrecto
0.13 s 7 KBi
#9
Incorrecto
0.113 s 7 KBi
#10
Incorrecto
0.116 s 8 KBi
Puntos totales: 0 / 100

Código

#include <bits/stdc++.h>

using namespace std;

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

  scanf(" %d", &c);

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

    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;
}