题目描述
为了用事实说明挖据机技术到底哪家强,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;
}
运行结果: