题目描述

为了用事实说明挖据机技术到底哪家强,PAT组织了一场挖据机技能大赛。请根据比赛结果统计出技术最强的那个学校。

输入格式

在第1行给出不超过10°的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)及其比赛成绩(百分制),中间以空格分隔。

输出格式

在一行中给出总得分最高的学校的编号及其总分,中间以空格分隔。题目保证答案唯一,没有并列。

输入样例

6

3 65

2 80

1 100

2 70

3 40

3 0

输出样例

2 150

思路

①令数组 school maxn记录每个学校的总分,初值为0。对每一个读入的学校schD与其对应的分数 score,令 school schid]+= score。

②令变量k记录最高总分的学校编号,变量MAX记录最高总分,初值为-1。由于学校是连续编号的,因此枚举编号1~N,不断更新k和MAX即可。

 

代码实现 :

#include <cstdio>
const int maxn = 100010;
int school[maxn] = {0};
int main(){
int n, schID, score;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&schID,&score);
school[schID] += score;
}
int k = 1,MAX=-1;
for(int i = 1;i<=n;i++) {
if(school[i]>MAX){
MAX=school[i];
k=i;
}
}
printf("%d %d",k,MAX);
return 0;
}

 

 运行结果:

挖掘机技术哪家强_i++