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

Envío 882

Problema 0xcf - Mirando al horizonte

  • Autor: mhc
  • Fecha: 2020-09-26 23:09:29 UTC (Hace más de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.026 s 3 KBi
#2
Correcto
0.025 s 3 KBi
#3
Correcto
0.026 s 3 KBi
#4
Correcto
0.023 s 3 KBi
#5
Correcto
0.026 s 3 KBi
#6
Correcto
0.604 s 44 KBi
#7
Tiempo límite excedido
0.577 s 43 KBi
#8
Correcto
0.577 s 58 KBi
#9
Tiempo límite excedido
0.555 s 37 KBi
#10
Correcto
0.613 s 61 KBi
Puntos totales: 80 / 100

Código

def sol(arr , N):

    frontier = []
    result = [None] * N

    for idx in range(N-1, -1, -1):
        
        while(len(frontier) > 0 and arr[idx] >= frontier[-1]):
            _ = frontier.pop()

        if len(frontier) == 0:
            cover = -1
        else:
            cover = frontier[-1]

        frontier.append(arr[idx])

        result[idx] = cover

    return result
    

num_cases = int(input())
str_results = []

for i in range(num_cases):

    N = int(input())
    arr = [int(x) for x in input().split()]
    result =  sol(arr, N)
    str_result = ' '.join([str(x) for x in result])
    str_results.append(str_result)

for i , str_result in enumerate(str_results):
    print(f"Case #{i+1}: {str_result}")