Pat1082. 射擊比賽 (20)
阿新 • • 發佈:2019-02-11
本題目給出的射擊比賽的規則非常簡單,誰打的彈洞距離靶心最近,誰就是冠軍;誰差得最遠,誰就是菜鳥。本題給出一系列彈洞的平面座標(x,y),請你編寫程式找出冠軍和菜鳥。我們假設靶心在原點(0,0)。
輸入格式:
輸入在第一行中給出一個正整數 N(<= 10 000)。隨後 N 行,每行按下列格式給出:
ID x y
其中 ID 是運動員的編號(由4位數字組成);x 和 y 是其打出的彈洞的平面座標(x,y),均為整數,且 0 <= |x|, |y| <= 100。題目保證每個運動員的編號不重複,且每人只打 1 槍。
輸出格式:
輸出冠軍和菜鳥的編號,中間空 1 格。題目保證他們是唯一的。
輸入樣例:3 0001 5 7 1020 -1 3 0233 0 -1
0233 0001
#include<iostream> #include<string> #include<cmath> #include<algorithm> using namespace std; struct Players { string Idnumber; int x, y; int sum; }T1[10001]; bool cmp(Players a, Players b) { return a.sum>b.sum; } int main() { int N = 0; cin >> N; for (int i = 0; i<N; i++) { cin >> T1[i].Idnumber >> T1[i].x >> T1[i].y; T1[i].sum = abs(T1[i].x )+abs( T1[i].y); } sort(T1, T1 + N, cmp); cout << T1[N - 1].Idnumber << " " << T1[0].Idnumber << endl; return 0; }