<pre name="code" class="cpp" style="color: rgb(51, 51, 51); line-height: 18px;">为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入样例:6 3 65 2 80 1 100 2 70 3 40 3 0输出样例:
2 150
原来做这题竟然开了个二维数组,来存,后来往后做到相同编号是卡住了,还是直接在输入时相加好。能力不济啊!
#include<cstdio>
#include<cstring>
#define N 10^5+5
int total[N];
int main()
{
int n;
int num,score;
scanf("%d",&n);
memset(total,0,sizeof(total));
for(int i=0;i<n;i++)
{
scanf("%d%d",&num,&score);
total[num]+=score;
}
int max=total[1];
int m;
for(int k=0;k<n;k++)
{
if(total[k]>max)
{
max=total[k];
m=k;
}
}
printf("%d %d\n",m,max);
return 0;
}