由於題目中涉及學校編號和總分兩個變量,考慮使用結構體來存儲。
首先輸入參賽人數N,然後依次輸入各個學校的編號和分數,如果編號已經存儲在數組當中只需將分數累加,若沒有則存儲爲新的數組元素,最後進行比較輸出總得分最高的學校編號及其總分。
但是提交之後只有三個測試用例可以通過,有一個超時。不知道具體是哪裏的問題,如果有大佬知道,希望能不吝賜教,感激不盡。
#include <stdio.h>
struct Score{
int n,score;
Score(){}
Score(int _n,int _score): n(_n),score(_score) {}
}S[100010];
int main(){
int n=0,score=0,i=0,max=-1,maxn=0;
int N=0,num=0;
scanf("%d",&N);
while(N--){
scanf("%d",&n);
scanf("%d",&score);
for(i=0;i<num;i++){
if(S[i].n==n){
S[i].score+=score;
continue;
}
}
S[num++]=Score(n,score);
}
for(i=0;i<num;i++){
if(S[i].score>max){
maxn=S[i].n;
max=S[i].score;
}
}
printf("%d %d\n",maxn,max);
return 0;
}