PAT编程团体赛 1047
这道题目一开头想用一个类,记录下三个属性来解决的,写到后面发现还是比较麻烦的,因为看似有三个属性,其实这道题的本质就只有两个量用的上:
①:学校编号
②:学生成绩
所以用一个map数组就能快速的解决问题
note:scanf的功能在这道题目当中也是比较好用的。
代码如下:
#include<iostream>
#include<map>
using namespace std;
int main() {
map<int,int> m1;
int n;cin>>n;
int count=0;
while(count++<n) {
int t1,p1,g1;
scanf("%d-%d %d",&t1,&p1,&g1);
if(m1.count(t1)!=0) {
m1[t1]+=g1;
}
else {
m1.insert(pair<int,int>(t1,g1));
}
}
int max=0;
int flag=0;
for(auto iter=m1.begin();iter!=m1.end();iter++) {
if(iter->second>max) {
max=iter->second;
flag=iter->first;
}
}
cout<<flag<<" "<<max<<endl;
return 0;
}