题目链接:请点击
思路:用一个int型的数组TeamNo存储每个队伍成绩,其中下标对应队伍编号,里面存储该队伍成绩。同时,用int型的tmax变量与tgrade变量分别用于存储当前最高分数的队伍及其当前成绩。每次输入循环时判断,此次队伍成绩是否大于当前最高分。最后输出。
代码
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int N;
while(cin>>N){
int TeamNo[1001];//下标对应队伍编号,存储的是该队伍所有队员的成绩
memset(TeamNo,0,sizeof(TeamNo));//初始化全0
int tmax=0,tgrade=0;//tmax当前最高分队伍编号 tgrade当前最高分数
for(int i=0;i<N;i++) {
int tno,no,grade;//tno对应队伍编号 no对应队员编号
scanf("%d-%d %d",&tno,&no,&grade);
TeamNo[tno]+=grade;
if(tgrade<TeamNo[tno]){
tmax=tno;
tgrade=TeamNo[tno];
}
}
cout<<tmax<<" "<<TeamNo[tmax]<<endl;
}
return 0;
}