逻辑上不是特别难,注意输出
#include<bits/stdc++.h>
using namespace std;
int n,maxx=-1,maxy=-1;
struct minn{
int x,y;
}a[500005];
bool cmp(minn a,minn b){
if(a.x!=b.x)
return a.x<b.x;
if(a.y!=b.y)
return a.y<b.y;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
if(maxx<a[i].x)
maxx=a[i].x;
if(maxy<a[i].y)
maxy=a[i].y;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<n;i++){
bool x=0;
for(int j=i+1;j<=n;j++){
if(a[i].x<=a[j].x&&a[i].y<=a[j].y)
x=1;
}
if(x==0)
printf("(%d,%d),",a[i].x,a[i].y);
}
printf("(%d,%d)",a[n].x,a[n].y);
return 0;
}