版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/85332079
第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下y最小的。
输入有多组数据。
每组输入n,然后输入n个整数对。
输出最小的整数对。
5
3 3
2 2
5 5
2 1
3 6
2 1
先把所有的x,y都推入vector中,然后按照x升序,x相等时y升序的方法排序,输出第一对x,y即可。
#include <bits/stdc++.h>
using namespace std;
struct node
{
int x,y;
};
bool Cmp(node a,node b)
{
//按照x升序排列,若x相等,则按照y升序排列
return a.x!=b.x ? a.x<b.x : a.y<b.y;
}
int main()
{
int n;
cin >> n;
vector<node> v;
for(int i = 0; i < n; i++)
{
int x, y;
cin >> x >> y;
v.push_back({x,y});
}
sort(v.begin(),v.end(),Cmp);
cout << v[0].x << " " << v[0].y << endl;
}