题目
思路:
比较典型的考题。
我用了之前常考的结构体排序,相对而言适用性广一点。算法笔记用的是散列,相对来说更简洁一点。
AC代码
结构体排序:
#include<bits/stdc++.h>
using namespace std;
struct race{
int squad;
int score;
int nscore;
race(){
squad=0;
score=0;
nscore=0;
}
};
bool cmp(race a, race b){
return a.nscore>b.nscore;
}
int main(){
int n; cin>>n;
race t[1001];
int id; char c; int iid;
for(int i=0;i<n;i++){
cin>>id>>c>>iid;
t[id].squad=id;
cin>>t[id].score;
t[id].nscore+=t[id].score;
}
sort(t,t+1001,cmp);
cout<<t[0].squad<<" "<<t[0].nscore;
}
散列:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,hashtable[1010]={0};
char c;
int team,ind,score;
cin>>n;
for(int i=0;i<n;i++){
cin>>team>>c>>ind>>score;
hashtable[team]+=score;
}
int k=0;
for(int i=0;i<1010;i++){
if(hashtable[i]>hashtable[k]){
k=i;
}
}
cout<<k<<' '<<hashtable[k];
return 0;
}