题目网址:

思路:

  1. 建立一个数组school[100010],用来存放各个学校的总分,通过school[id] += score,实现;
  2. 用max,k来记录最高分和最高分学校的额编号;

题解:

#include<stdio.h>

int main(){

    const int maxn = 100010;

    int n,id,score;
    int school[maxn] = {0}; 

    int max=-1,k=1;        //max用来记录最高分,k记录最高分的学校编号 

    scanf("%d",&n);

    for(int i=0;i<n;i++){
        scanf("%d %d",&id,&score);
        school[id] += score;
    }

    for(int i=1;i<=n;i++){
        if(school[i]>max){
            max = school[i];
            k = i;
        }
    }

    printf("%d %d",k,max);


    return 0;
}