Portal

Portal1: Codeforces

Portal2: Luogu

Description

The winner of the card game popular in Berland "Berlogging" is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points, he is the winner. The situation becomes more difficult if the number of such players is more than one. During each round a player gains or loses a particular number of points. In the course of the game the number of points is registered in the line "\(\texttt{name score}\)", where name is a player's name, and score is the number of points gained in this round, which is an integer number. If score is negative, this means that the player has lost in the round. So, if two or more players have the maximum number of points (say, it equals to \(m\)) at the end of the game, than wins the one of them who scored at least \(m\) points first. Initially each player has \(0\) points. It's guaranteed that at the end of the game at least one player has a positive number of points.

Input

The first line contains an integer number \(n(1 \le n \le 1000)\), \(n\) is the number of rounds played. Then follow \(n\) lines, containing the information about the rounds in "\(\texttt{name score}\)" format in chronological order, where \(\texttt{name}\) is a string of lower-case Latin letters with the length from \(1\) to \(32\), and \(\texttt{score}\) is an integer number between \(-1000\) and \(1000\), inclusive.

Output

Print the name of the winner.

Sample Input1

3
mike 3
andrew 5
mike 2

Sample Output1

andrew

Sample Input2

3
andrew 3
andrew 2
mike 5

Sample Output2

andrew

Description in Chinese

Berland流行着纸牌游戏“Berlogging”,这个游戏的赢家是根据以下规则确定的:在每一轮中,玩家获得或失去一定数量的分数,在游戏过程中,分数被记录在“名称和得分”行中,其中名字是玩家的名字,得分是在这一轮中获得的分数。得分是负值意味着玩家失去了相应的分数。如果在比赛结束时只有一名玩家分数最多,他就是获胜者。如果两名或两名以上的玩家在比赛结束时都有最大的分数\(m\),那么其中首先获得至少\(m\)分的玩家胜利。开始时,每个玩家都是\(0\)分。保证在比赛结束时至少有一个玩家的分数为正。

Solution

把每个人的得分存到\(\texttt{map}\)里,然后求出最大得分,再寻找最先到达最大得分的人,即为获胜者。

Code

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map> using namespace std; const int INF = 0x3f3f3f3f, MAXN = 1005;
int n, a[MAXN];
string name[MAXN];
map<string, int> Map1, Map2;
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
cin >> name[i] >> a[i];
Map1[name[i]] += a[i];
}//映射到map里
int Max = -INF;
for (int i = 0; i < n; i++)
if (Map1[name[i]] > Max) Max = Map1[name[i]];//求出最大得分
for (int i = 0; i < n; i++) {
Map2[name[i]] += a[i];
if (Map2[name[i]] >= Max && Map1[name[i]] >= Max) {
cout << name[i] << endl;//输出最先到最大得分的人
return 0;
}
}
return 0;
}

『题解』Codeforces2A Winner的更多相关文章

  1. 『题解』洛谷P1063 能量项链

    原文地址 Problem Portal Portal1:Luogu Portal2:LibreOJ Portal3:Vijos Description 在\(Mars\)星球上,每个\(Mars\)人 ...

  2. 『题解』Codeforces1142A The Beatles

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...

  3. 『题解』Codeforces1142B Lynyrd Skynyrd

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently Lynyrd and Skynyrd went to a ...

  4. 『题解』洛谷P1993 小K的农场

    更好的阅读体验 Portal Portal1: Luogu Description 小\(K\)在\(\mathrm MC\)里面建立很多很多的农场,总共\(n\)个,以至于他自己都忘记了每个农场中种 ...

  5. 『题解』洛谷P2296 寻找道路

    更好的阅读体验 Portal Portal1: Luogu Portal2: LibreOJ Description 在有向图\(\mathrm G\)中,每条边的长度均为\(1\),现给定起点和终点 ...

  6. 『题解』洛谷P1351 联合权值

    更好的阅读体验 Portal Portal1: Luogu Portal2: LibreOJ Description 无向连通图\(\mathrm G\)有\(n\)个点,\(n - 1\)条边.点从 ...

  7. 『题解』Codeforces656E Out of Controls

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description You are given a complete undirected gr ...

  8. 『题解』洛谷P2170 选学霸

    更好的阅读体验 Portal Portal1: Luogu Description 老师想从\(N\)名学生中选\(M\)人当学霸,但有\(K\)对人实力相当,如果实力相当的人中,一部分被选上,另一部 ...

  9. 『题解』洛谷P1083 借教室

    更好的阅读体验 Portal Portal1: Luogu Portal2: LibreOJ Portal3: Vijos Description 在大学期间,经常需要租借教室.大到院系举办活动,小到 ...

随机推荐

  1. redis系列之------字典

    前言 字典, 又称符号表(symbol table).关联数组(associative array)或者映射(map), 是一种用于保存键值对(key-value pair)的抽象数据结构. 在字典中 ...

  2. Kubernetes中的PV和PVC是啥

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛. 在Pod的Vo ...

  3. 使用Jmeter并发websocket协议项目

    1.安装Jmeter 网址:http://jmeter.apache.org/下载 2.启动Jmeter \apache-jmeter-5.1.1\bin\jmeter.bat 3.安装‘Plugin ...

  4. 并发新构件之CyclicBarrier

    CyclicBarrier:叫做循环栅栏,名字挺好听的.JDK描述:允许一组线程全部等待彼此达到共同屏障点的同步辅助. 循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此. 屏障被 ...

  5. 秘制CSP模板

    不定期更细中...... 声明1:由于js的问题导致VIEW CODE按钮只能点"I"附近才能展开代码 声明2:为了排版的美观,所有的解释以及需要留意的地方我都放在代码中了 声明3 ...

  6. Spring源码分析之IOC的三种常见用法及源码实现(二)

    Spring源码分析之IOC的三种常见用法及源码实现(二) 回顾上文 我们研究的是 AnnotationConfigApplicationContext annotationConfigApplica ...

  7. C# MQTT mqtt客户端,发布订阅消息

    如果想用C#来和mqtt的服务器进行数据交互的话,有一个常见的选择,那就是 MQTTNET 地址如下:https://github.com/chkr1011/MQTTnet 那个库在最近几个版本升级的 ...

  8. Python3字符串常见方法

    目录 字符串的进阶使用 格式化输出字符串 当然除了上述方法外,还可以你使用format方法 format方法第二种用法: Python字符串与二进制的转换 字母大写 计字符a出现的次数 输出50个字符 ...

  9. PHP yield代替range生成范围内的数

    <?php function yieldRange($start, $limit, $step) { if ($start == $limit || $step == 0) { return $ ...

  10. 经验分享:程序员如何快速定位问题(BUG)

    让我掉下眼泪的 不止内存泄漏 让我夜夜不眠的 不止你的需求 明天还要改多久 你攥着我的手 让我感到为难的 是善变的需求 发布总是在半夜 回滚是永远的愁 错误(Bug)随时的暴漏 困扰着我心头 作为程序 ...