找最小數 (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;  }