1032 挖掘機技術哪家強 20

2021-07-03 15:23:17 字數 1965 閱讀 8190

時間限制

200 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者 chen, yue

為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。

輸入格式:

輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號(從1開始連續編號)、及其比賽成績(百分制),中間以空格分隔。

輸出格式:

在一行中給出總得分最高的學校的編號、及其總分,中間以空格分隔。題目保證答案唯一,沒有並列。

輸入樣例:

6

3 65

2 80

1 100

2 70

3 40

3 0

輸出樣例:
2 150

提交**

//注意程式不能太長了,大小是有限制的。pat結果是17分,執行超時,多半是因為vector的關係。可能用指標結合二維陣列這樣的方式會比較好

struct compr//定義結構體,對應每個參賽者和他的分數

;struct sch//學校結構體,對應學校和相應的總分

;int main()

for (int i = 1; i < comprs.size(); i++)//將輸入的資料,按學校的編號進行排序

comprs[j + 1].sn = key;

comprs[j + 1].scr = keyscr;

} vectorscls;

sch scl;

scl.sn = comprs[0].sn;

scl.allscr = comprs[0].scr;

for (int i = 1; i < comprs.size(); i++)//根據編號,順序計算每個學校得到的總分

else

}int finalscl = scl.sn;

scl.allscr = 0;

for (int i = comprs.size() - 1; i >= 0; i--)//由於前面程式的設計缺陷,重新計算最後乙個學校得到的總分

}scls.push_back(scl);

for (int i = 1; i < scls.size(); i++)//根據分數進行排序,使用的是插入排序的思想

scls[j + 1].allscr = keyscr;

scls[j + 1].sn = keysn;

} cout << scls[0].sn << " " << scls[0].allscr;//最後對結果進行輸出

return 0;

}

第二版本**,由於之前學了一點hash表,其實這題用hash的形式來解答會簡單很多。學校的代號就是陣列的下標,分數就是對應的下標值,計算出來,輸出就可以了

得分17分,我感覺應該是學校編號有可能不一定小於10000的原因造成的錯誤。所以下面的**中,我把num的大小擴大十倍,換成100000,答案就對了,也不會執行超時

#include#include #include#include#include#include #include #include using namespace std;

int main()

; for (int i = 0; i < n; i++)

int max = 0, allscore = 0;

for (int i = 0; i < 10000; i++) }

cout << max << " " << allscore;

return 0;

}

1032 挖掘機技術哪家強 20

為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號 從1開始連續編號 及其比賽成績 百分制 中間以空格分隔。輸...

1032 挖掘機技術哪家強 20

為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號 從1開始連續編號 及其比賽成績 百分制 中間以空格分隔。輸...

1032 挖掘機技術哪家強 20

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人...