版权声明:本文为博主原创文章,遵循 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最小的。
输入描述:
代码语言:javascript复制输入有多组数据。
每组输入n,然后输入n个整数对。
输出描述:
代码语言:javascript复制输出最小的整数对。
输入样例:
代码语言:javascript复制5
3 3
2 2
5 5
2 1
3 6
输出样例:
代码语言:javascript复制2 1
解题思路:
先把所有的x,y都推入vector中,然后按照x升序,x相等时y升序的方法排序,输出第一对x,y即可。
AC代码:
代码语言:javascript复制#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;
}