找最小数 (vector的练习)

2019-11-08 17:05:08 浏览数 (1)

版权声明:本文为博主原创文章,遵循 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;
}

0 人点赞