AtCoder Beginner Contest 212 D - Querying Multiset【Python】
https://atcoder.jp/contests/abc212/tasks/abc212_d
AtCoder ProblemsでDifficulty: 775、Solve Probability: 31%でした。
操作2の足された数の和を記録しておき、操作1でその和をXiから引いたものをheapqで管理、操作3ではその和をXiに足したものを取り出すようにしたところ解くことができました。
import heapq as hq Q = int(input()) q = [] sum_add = 0 for i in range(Q): query = list(map(int, input().split())) if query[0] == 1: hq.heappush(q, query[1] - sum_add) elif query[0] == 2: sum_add += query[1] else: print(hq.heappop(q) + sum_add)