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; }