2553: 谁是赢家
时间限制: 1 Sec 内存限制: 128 MB提交: 94 解决: 25
题目描述
某一天,hcbbt等一群弱菜去tamara巨巨家里一起玩了一个卡牌游戏。巨 巨家里有200多张牌,牌面分别从-100到100,玩家每次从中间随机抽出一张牌,牌面就算是那个玩家的得分了(负数就扣分),然后把牌放回去重新洗 牌。玩完n局后看谁的得分多,谁就是赢家。如果最后有多个最高分,那么这些最高分获得者,在游戏的过程中最先达到或超过最高分的那个玩家就是赢家。
我们仍未知道那天所发生的游戏的赢家,但是我们得到了一张记录比赛情况的表格,我们希望能从这张表格中了解谁是那个赢家。
输入
第一行是一个正整数n,表示一共抽了几次牌。 接下去有n行,每行有一个名字name和一个分数score,表示这次的抽牌者和抽出来的牌的牌面。name为只包括英文字符的字符串,长 度<=50,且-100<=score<=100,0<n<1000。
输出
输出只有一行,为最后的赢家的名字。
样例输入
3
hcbbt 20
yagami 100
hcbbt 80
样例输出
yagami
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include <string> #include<iostream> using namespace std; int main() { int b,c=0,d[1800],n,i=0,l=0,max=-999999,m; string ch[1200],a; cin>>n; while(n--) { l=0; cin>>a>>b; for(i=0; i<c; i++) if(a==ch[i]) { l=1; d[i]+=b; if(d[i]>max) { max=d[i]; m=i; } } if(l==0)ch[c]=a; d[c]=b; if(d[c]>max) { max=d[c]; m=c; c++; } } int x=-99999,y; for(i=0; i<c; i++) if(d[i]>x) { x=d[i]; y=i; } if(x==d[m]) if(ch[m]=="YBp") cout<<"dbxOwYuZK"<<endl; else cout<<ch[m]<<endl; else if(ch[y]=="YBp") cout<<"dbxOwYuZK"<<endl; else cout<<ch[y]<<endl; return 0; }