最大ヒップ


作成日:2022年1月29日午後6:11

インプリメンテーションコード

# 최대힙
import sys
import heapq
sys.stdin = open("input.txt", "rt")

heap = []

while True:
    num = int(input())
    if num == -1:
        break
    elif num == 0:
        res = -(heapq.heappop(heap))
        print(res)
    else:
        heapq.heappush(heap, -num)
  • Pythonのheapqは基本的に最小のhipしか提供していない.
  • ですので、最大ヒップの機能が欲しい場合は、物を入れる記号(ここでは負数で作られています)を変えて、最大ヒップのように最小ヒップを使うことができます.