每次给出一个人的得分
统计最终的最高分
如果只有一个人得到最高分,直接输出这个人的名字
否则从这多个人中输出第一个先得到大于等于最高分的人的名字
因为红色字体这里没有理解,跪了好多发。。。
代码如下:
/* ***********************************************
Author : yinwoods
E-Mail : yinwoods@163.com
Created Time : 2014年12月15日 星期一 15时46分01秒
File Name : 2A.cpp
************************************************ */
#include <map>
#include <cmath>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAXN 10010
#define INF 0x7fffffff
#define LL long long
using namespace std;
int num[MAXN];
string str[MAXN];
struct {
string str;
int num;
}maxs;
map<string, int> mp, mps;
int main(void) {
int T;
scanf("%d", &T);
for(int i=0; i<T; ++i) {
cin >> str[i] >> num[i];
mp[str[i]] += num[i];
}
maxs.num = 0;
for(int i=0; i<T; ++i) {
if(maxs.num < mp[str[i]]) {
maxs.str = str[i];
maxs.num = mp[str[i]];
}
}
for(int i=0; i<T; ++i) {
mps[str[i]] += num[i];
if(mps[str[i]] >= maxs.num && mp[str[i]] >= maxs.num) {
cout << str[i] << endl;
return 0;
}
}
return 0;
}