题目链接在此。
思路
由于题目要统计的是每队的成绩,则和具体队员的得分无关。开一个hashTable数组,用来记录每个队伍的总得分,输入是用hashTable[team]+=score即可,最后遍历一遍hashTable数组得到最大得分和组号。
AC代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int hashTable[1010] = {0};
int N;
scanf("%d",&N);
int group, member, score; //组号,成员号,分数
for(int i = 0; i < N; i++){
scanf("%d-%d %d",&group, &member, &score);
hashTable[group] += score;
}
int max_group = -100, max_sum = -1;
for(int i = 0; i < 1010; i++){
if(hashTable[i] > max_sum){
max_sum = hashTable[i];
max_group = i;
}
}
printf("%d %d\n",max_group, max_sum);
return 0;
}