傳送門
https://pintia.cn/problem-sets/994805260223102976/problems/994805289432236032
題目
為了用事實(shí)說明挖掘機(jī)技術(shù)到底哪家強(qiáng),PAT組織了一場挖掘機(jī)技能大賽。現(xiàn)請你根據(jù)比賽結(jié)果統(tǒng)計(jì)出技術(shù)最強(qiáng)的那個(gè)學(xué)校。
輸入格式:
輸入在第1行給出不超過10^5的正整數(shù)N,即參賽人數(shù)。隨后N行,每行給出一位參賽者的信息和成績,包括其所代表的學(xué)校的編號(hào)(從1開始連續(xù)編號(hào))、及其比賽成績(百分制),中間以空格分隔。
輸出格式:
在一行中給出總得分最高的學(xué)校的編號(hào)、及其總分,中間以空格分隔。題目保證答案唯一,沒有并列。
輸入樣例:
6
3 65
2 80
1 100
2 70
3 40
3 0
輸出樣例:
2 150
分析
先聲明一個(gè)數(shù)組,然后讀入數(shù)據(jù),用學(xué)校編號(hào)作為下標(biāo),將學(xué)生成績加到對應(yīng)下標(biāo)學(xué)校的總分中去,每加一次,比較一次大小。
最后將最大總分學(xué)校的索引和最大總分輸出即可。
源代碼
//C/C++實(shí)現(xiàn)
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
scanf("%d", &n);
vector<int> v(n + 1);
int max_index = -1, max_grade = 0;
for(int i = 0; i < n; ++i){
int index, grade;
scanf("%d %d", &index, &grade);
v[index] += grade;
if(v[index] > max_grade){
max_index = index;
max_grade = v[index];
}
}
printf("%d %d\n", max_index, max_grade);
return 0;
}