有同学用优先级队列/最大堆做,其实不用那么麻烦。
将点按照x坐标从大到小排序并遍历,那么实际上就可以无视X坐标,只关心Y坐标就行。
换句话说:只需要知道之前遍历的点的最大Y值是多少即可

n=int(input())
points=[ [int(x) for x in input().split()]     for i in range(n)]
points.sort(key=lambda x:-x[0])
ans=[]
top=points[0][1]
for p in points:
    if top>p[1]:
        continue
    top=p[1] 
    ans.append(p)
#ans.sort(key=lambda x:x[0])
for i in range(len(ans)):
    p=ans[len(ans)-1-i]
    print(p[0],p[1])