1 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强, P A T PAT PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第
1
1
1 行给出不超过
1
0
5
10^{5}
105 的正整数
N
N
N,即参赛人数。随后
N
N
N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从
1
1
1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入样例:
6
3 65
2 80
1 100
2 70
3 40
3 0
输出样例:
2 150
2 思路
在代码的注释中
3 代码
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i,id,score;
int arr[100001]={0};
/*创建一个全0的一维数组 数组用来存放每个学校的总和分数
arr[0]不用,则数组下标和学校id一一对应
因为输入的个数为10^5个,如果全部都是不一样的学校 则需要100000个空间来存 */
for(i=0;i<n;i++)
{
scanf("%d %d",&id,&score);
arr[id]=arr[id]+score; // 因为数组下标和学校id一一对应
} // id是什么,数组下标就加上对应的score
int MAX=0,k=1; // k为总和分最高学校的id,MAX为最高总和分
// arr[0]不用,从1开始循环
for(i=1;i<=n;i++)
{
if(arr[i]>MAX)
{
MAX=arr[i];
k=i;
}
}
printf("%d %d",k,MAX);
return 0;
}
4 测评结果
图 1 测 评 结 果 图1~测评结果 图1 测评结果