import heapq
class Student:
def __init__(self, chinese, math, english):
self.chinese = chinese
self.math = math
self.english = english
self.sum = chinese + math + english
def __lt__(self, other):
# TODO: 实现比较逻辑,按照总分、语文、数学、英语的优先级排序
# """
# 自定义小于比较逻辑,适配 heapq 的最小堆实现最大堆效果
# 排序优先级:总分降序 > 语文降序 > 数学降序 > 英语降序
# """
# 1. 总分不同:总分大的,优先被弹出(所以总分大的返回True)
if self.sum != other.sum:
return self.sum > other.sum
# 2. 总分相同,比较语文:语文大的为True,
if self.chinese != other.chinese:
return self.chinese > other.chinese
# 3. 语文相同,比较数学:数学大的优先被弹出
if self.math != other.math:
return self.math > other.math
# 4. 数学相同,比较英语:同上
return self.english > other.english
# 使用Python的heapq模块实现优先队列
s = []
def insertValue(chinese, math, english):
# TODO: 实现插入操作
stu = Student(chinese,math,english)
heapq.heappush(s,stu)
def deleteValue():
# TODO: 实现删除操作
if len(s)>0:
heapq.heappop(s)
def getTop():
# TODO: 返回成绩最好的学生
if len(s)>0:
return s[0]
if __name__ == "__main__":
q = int(input())
for _ in range(q):
line = input().split()
op = int(line[0])
if op == 1:
chinese = int(line[1])
math = int(line[2])
english = int(line[3])
insertValue(chinese, math, english)
elif op == 2:
top = getTop()
print(f"{top.chinese} {top.math} {top.english}")
elif op == 3:
deleteValue()