列表

详情


NC200202. 好点

描述

在一个二维平面里,如果一个点  的右上方没有点,即不存在  同时满足  这两个条件, 认为这个点是“最好的点“。

现在  给你  个点,他希望你能够找出所有“最好的点“,并按照横坐标大小从小到大输出。

输入描述

第一行一个整数  ,表示点的数量

接下来  行,每行两个整数  ,表示一个点的坐标。

输入保证不存在横坐标相等或纵坐标相等的点

输出描述

按照横坐标大小,从小到大输出每个点的横纵坐标,每个点占一行。

示例1

输入:

3
1 1
2 2
3 3

输出:

3 3

说明:

第三个点满足“最好的点“的定义。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 496ms, 内存消耗: 14104K, 提交时间: 2021-01-27 14:00:30

#include <bits/stdc++.h>
using namespace std;
struct xy
{
	int x;
	int y;
};
bool cmp(xy a,xy b)
{
	return a.x<b.x;
}
int main()
{
	int N;
	cin>>N;
	xy p[N];
	int i,j;
	for(i=0;i<N;i++){
		cin>>p[i].x>>p[i].y;
	}
	sort(p,p+N,cmp);
	for(i=0;i<N;i++){
		for(j=i+1;j<N;j++){
			if(p[i].y<=p[j].y){
				break;
			}
		}
		if(j==N){
			cout<<p[i].x<<' '<<p[i].y<<endl;
		}
	}
	return 0;
}

上一题