精 挑 細 選
時間限制:3000 ms | 記憶體限制:65535 KB
難度:1
- 描述
- 小王是公司的倉庫管理員,一天,他接到了這樣一個任務:從倉庫中找出一根鋼管。這聽起來不算什麼,但是這根鋼管的要求可真是讓他犯難了,要求如下:
1、 這根鋼管一定要是倉庫中最長的;
2、 這根鋼管一定要是最長的鋼管中最細的;
3、 這根鋼管一定要是符合前兩條的鋼管中編碼最大的(每根鋼管都有一個互不相同的編碼,越大表示生產日期越近)。
相關的資料到是有,可是,手工從幾百份鋼管材料中選出符合要求的那根……
要不,還是請你編寫個程式來幫他解決這個問題吧。
- 輸入
- 第一行是一個整數N(N<=10)表示測試資料的組數)
每組測試資料的第一行 有一個整數m(m<=1000),表示倉庫中所有鋼管的數量,
之後m行,每行三個整數,分別表示一根鋼管的長度(以毫米為單位)、直徑(以毫米為單位)和編碼(一個9位整數)。 - 輸出
- 對應每組測試資料的輸出只有一個9位整數,表示選出的那根鋼管的編碼,
每個輸出佔一行 - 樣例輸入
-
2 2 2000 30 123456789 2000 20 987654321 4 3000 50 872198442 3000 45 752498124 2000 60 765128742 3000 45 652278122
- 樣例輸出
-
987654321 752498124
-
#include <iostream> #include <algorithm> #include <vector> using namespace std; struct Steel{ int length; int diameter; long id; bool operator<(const Steel& one) const{ if(length != one.length) return length<one.length; else if(diameter != one.diameter) return diameter > one.diameter; else return id < one.id; } }; int main(){ int n; cin >> n; for (int icase = 0 ; icase < n; ++ icase) { int m; cin >> m; vector<Steel> steelVector(m); for (int i = 0; i < m; ++ i) { cin >> steelVector[i].length >>steelVector[i].diameter >> steelVector[i].id; } sort(steelVector.begin(),steelVector.end()); cout<<steelVector.rbegin()->id<<endl; } }