改了n遍,仅供参考,请勿抄袭
查看原帖
改了n遍,仅供参考,请勿抄袭
1127560
SR_G_B_ysqd1602楼主2024/3/30 11:39

逻辑上不是特别难,注意输出

#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;
}
2024/3/30 11:39
加载中...