白駿11286.お尻を折る


白駿11286。お尻の割引問題

TRYS AND INSIGHTS

  • heapq題です.かなり簡単です
  • heapqを検索してみるとPriorityQueueよりもHeapqがおすすめ
  • heapqからheappushまでの関数は、heapに要素を追加すると、釘の形で挿入することができる.heapq.heappush(h, ({인자1, 인자2}))heapは、パラメータ1、パラメータ2の順に優先順位を付けて最小heapを構成します.
  • SOLUTION

    import sys
    import heapq
    
    def main():
        N = int(sys.stdin.readline())
        h = []
        for _ in range(N):
            x = int(sys.stdin.readline())
            if x == 0:
                # 절댓값이 가장 작은 값을 출력, 그 값을 배열에서 제거
                print(0 if len(h)==0 else heapq.heappop(h)[1])
            else:
                heapq.heappush(h, (abs(x),x))
    
    main()