Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.03 s | 3 KBi |
#2 |
Correcto
|
0.023 s | 3 KBi |
#3 |
Correcto
|
0.027 s | 3 KBi |
#4 |
Correcto
|
0.051 s | 7 KBi |
#5 |
Correcto
|
0.03 s | 7 KBi |
#6 |
Correcto
|
0.505 s | 46 KBi |
#7 |
Correcto
|
0.52 s | 43 KBi |
#8 |
Correcto
|
0.809 s | 59 KBi |
#9 |
Correcto
|
0.489 s | 50 KBi |
#10 |
Correcto
|
0.705 s | 61 KBi |
def mirar_horizonte(alturas): salidas = [None]*len(alturas) stack = [] for i in reversed(range(len(alturas))): altura_actual = alturas[i] while(stack): ultima_altura = stack[-1] # front of the stack if altura_actual>=ultima_altura: stack.pop() else: salidas[i] = ultima_altura break if not stack: salidas[i] = -1 stack.append(altura_actual) return salidas def print_case(case_index, answer): print(f"Case #{case_index+1}: {' '.join([str(h) for h in answer])}") # mirando al horizonte # 0xcf - Mirando al horizonte C = int(input()) for case in range(C): N = int(input()) alturas = [int(x) for x in input().split()] print_case(case, mirar_horizonte(alturas))