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; }