计算机考研复试真题 找最小数

题目描述

第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下y最小的。 

输入描述:

输入有多组数据。
每组输入n,然后输入n个整数对。

输出描述:

输出最小的整数对。
示例1

输入

5  
3 3  
2 2  
5 5  
2 1  
3 6

输出

2 1

//计算机考研复试真题 找最小数
/*
程序设计思想:首先建立一个含两个成员的结构体Num,然后建立一个Num类型的向量。然后输入数据后,对向量中元素进行排序。
利用头文件中的algorithm的sort函数,重定义comp函数,然后输出即可。
*/
//程序实现:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct Num{
    int x;
    int y;
};
bool comp(Num n1,Num n2){    //自定义函数,注意排法
    if(n1.x==n2.x)
        return n1.y<n2.y;
    else
        return n1.x<n2.x;

}
int main(){
    int n;
    while(cin>>n){
        vector<Num>v(n);
        for(int i=0;i<n;++i){    //读入信息
            cin>>v[i].x>>v[i].y;
        }
        sort(v.begin(),v.end(),comp);    //按要求排序
        cout<<v[0].x<<" "<<v[0].y<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/parzulpan/p/9976124.html