找最小数(北邮复试上机)

前言:

21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。

题目描述:

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

输入描述

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

输出描述:

输出最小的整数对。

解答

#include<iostream>
#include<algorithm>
#include<vector>
#include<stdio.h>
using namespace std;

struct num {
    
    
	int x;
	int y;
};
bool cmp(num a, num b) {
    
    
	if (a.x != b.x)
		return a.x < b.x;
	else
		return a.y < b.y;
}
int main()
{
    
    	
	int n;
	num temp;
	while (scanf("%d", &n) != EOF) {
    
    
		vector<num> vi;
		for (int i = 0; i < n; i++) {
    
    
			cin >> temp.x >> temp.y;
			vi.push_back(temp);
		}
		sort(vi.begin(), vi.end() , cmp);
		printf("%d %d\n", vi[0].x, vi[0].y);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44897291/article/details/112788914