b_zj_最大点集(排序+小思维)
定义P中某点x,如果x满足P中任意点都不在x的右上方区域内,则称其为最大点。求出所有“最大的”点的集合。
思路:先约束好一维,在对另一位进行判断即可
def solve():
n=int(input())
A,ans=[],[]
for i in range(n):
x,y=map(int,input().split())
A.append((x,y))
maxy=-1
A.sort(key=lambda point: point[0], reverse=True) #先按x轴降序排序
for p in A:
if maxy==-1 or p[1]>maxy:
ans.append(p)
maxy=p[1]
ans.sort(key=lambda p: p[0])
for p in ans:
print(p[0], p[1])
solve()