题目
思路
由于学校的编号是从1开始连续编号,所以学校编号最大不会超过参赛人数n;由此,我们用一个数组score[]来表示每个学校的得分,编号为i的学校的得分就储存在score[i]中;计算完成后,再打印出得分最高的学校编号和得分即可
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n, id, gra, max, i;
scanf("%d", &n);
int* score = (int*)calloc(n + 1, sizeof(int));
for (i = 1; i <= n; i++)
{
scanf("%d%d", &id, &gra);
score[id] += gra;
}
for (max = 1, i = 1; i <= n; i++)
if (score[i] > score[max])
max = i;
printf("%d %d", max, score[max]);
return 0;
}