为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入样例:
6
3 65
2 80
1 100
2 70
3 40
3 0
输出样例:
2 150
挖掘机技术肯定还的是lx!!!
这道题算20分真是多了,很easy,直接上代码!
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n; //参赛人数
scanf("%d",&n);
int i=0,j=0;//使用的循环变量
int schoolId,score;//选手的学校编号,成绩
int s[n+1]; //这里我用的笨方法,直接假设最坏情况,n个参赛选手来自不同的学校,用s[n+1]存放每个学校的总分,s[0]不存放,因为学校编号从0开始。
int max=0;
for(i=0;i<=n+1;i++) //初始化s数组
{
s[i]=0;
}
for(i=1;i<=n;i++)
{
scanf("%d %d",&schoolId,&score); //输入时检测直接把对应编号学校的分数加到s数组里
s[schoolId]=s[schoolId]+score;
}
max=1;
for(i=1;i<n;i++) //求s数组中最大值的下标,下标max和s[max]就是我们要求的值了
{
if(s[max]<s[i])
{
max=i;
}
}
printf("%d %d\n",max,s[max]);
system("pause");
return 0;
}