總時間限制: 1000ms
記憶體限制: 65536kb
描述
某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績:語文、數學、英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學排在前面,這樣,每個學生的排序是唯一確定的。
任務:先根據輸入的3門課的成績計算總分,然後按上述規則排序,最後按排名順序輸出前五名名學生的學號和總分。注意,在前5名同學中,每個人的獎學金都不相同,因此,你必須嚴格按上述規則排序。例如,在某個正確答案中,如果前兩行的輸出資料(每行輸出兩個數:學號、總分) 是:
7 279
5 279
這兩行資料的含義是:總分最高的兩個同學的學號依次是7號、5號。這兩名同學的總分都是 279 (總分等於輸入的語文、數學、英語三科成績之和) ,但學號為7的學生語文成績更高一些。如果你的前兩名的輸出資料是:
5 279
7 279
則按輸出錯誤處理,不能得分。
輸入
包含n+1行:
第1行為乙個正整數n,表示該校參加評選的學生人數。
第2到n+1行,每行有3個用空格隔開的數字,每個數字都在0到100之間。第j行的3個數字依次表示學號為 j-1 的學生的語文、數學、英語的成績。每個學生的學號按照輸入順序編號為1~n (恰好是輸入資料的行號減1)。
所給的資料都是正確的,不必檢驗。
50%的資料滿足:各學生的總成績各不相同;
100%的資料滿足: 6<=n<=300。
輸出 共有5行,每行是兩個用空格隔開的正整數,依次表示前5名學生的學號和總分。
樣例輸入
樣例 #1:690
6780
8766
9178
8991
8899
7767
8964
7889
98樣例 #2:880
8989
8898
7890
6780
8766
9178
8991
8899
7767
8964
7889
98
樣例輸出
樣例 #1:
6265
4264
3258
2244
1237
樣例 #2:
8265
2264
6264
1258
5258
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 300 + 5;
struct node node[maxn];
bool cmp (const node& a, const node& b)
int main()
sort(node, node+n, cmp);
for (int i = 0; i < 5; i++)
return
0;}
比較時sort函式根據cmp函式進行判斷輸入的大小,系統預設ab時返回為真,那麼最終得到的排序結果也相應地變為降序。
特殊數 2017北郵機試真題
題目 設乙個正整數既是平方數又是立方數時,稱其為special數。輸入包含多組測試資料,第一行輸入測試資料的組數,接著在後續每行輸入n n 1000000000 的時候,請輸出1到n中包含的所有special數的個數。example inputs 21 64outputs 12 project sp...
華為機試真題 66 單詞搜尋
題目 日期 2015 07 06 題目 wordsearch include include include include include using namespace std bool dfs vector board,string word,int index,int x,int y,vec...
華為機試真題 70 分蘋果
題目 m個相同蘋果放到n個相同籃子裡有多少種放法,允許有籃子不放。1 m 10,1 n 10 例如5個蘋果三個籃子,3,1,1 和 1,1,3是同一種放法 輸入 7 3 輸出 8思路 設f m,n 為m個蘋果,n個盤子的放法數目 當n m 必定有n m個盤子永遠空著,去掉它們對擺放蘋果方法數目不產生...