CF 2A-Winner 点击打开链接
题意:计算每个人的得分,并输出先达到最大得分的人的名字。
思路:这题用string 和map来做会方便得多,直接输入名字就可以查询分数。输入姓名,分数,然后将分数加到对应的人身上即可,(要求最先达到最大值的人,故需要先求出最大值,再通过循环来找出最先达到的人)
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string,int> man , b;
string name[1005];
int score[1005];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>name[i]>>score[i];
man[name[i]]+=score[i];
}
int Max=-1;
for(int i=0;i<n;i++){
if(man[name[i]]>Max)
Max=man[name[i]];
}
for(int i=0;i<n;i++){
b[name[i]]+=score[i];
if(b[name[i]]>=Max&&man[name[i]]>=Max){
cout<<name[i]<<endl;
break;
}
}
return 0;
}