B1032 挖掘机技术哪家强
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入样例:
6 3 65 2 80 1 100 2 70 3 40 3 0
输出样例:
2 150
思路:考虑到需要多次记录输入编号相同的队伍分数累加,所以用数组来存储比较合适,其次数组的下标可以直接用来当作编号
代码
#include<cstdio>
int main(){
int number,order,sc,max_number;
int score[100000]={0};
int max=-1;
scanf("%d",&number);
for(int i=0;i<number;i++){
scanf("%d%d",&order,&sc);
score[order]+=sc;
}
for(int i=1;i<=number;i++){
if(score[i]>max){
max=score[i];
max_number=i;
}
}
printf("%d %d\n",max_number,score[max_number]);
return 0;
}
结果
要点
1.测试点2是数组越界问题,在for循环中,能用++就别用--!
2.测试点3是边界问题,开辟的数组空间,即使未使用的数组空间,也要赋予初值,这里我赋的初值是0
慢慢走就很快,亦要努力,亦要上岸~