有同学用优先级队列/最大堆做,其实不用那么麻烦。
将点按照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])