找最小數 (vector的練習)
- 2019 年 11 月 8 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 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即可。
AC程式碼:
#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; }