2553: 谁是赢家

来源:互联网 发布:国外域名注册排名 编辑:程序博客网 时间:2024/05/21 15:45





Description

某一天,hcbbt等一群弱菜去tamara巨巨家里一起玩了一个卡牌游戏。巨 巨家里有200多张牌,牌面分别从-100到100,玩家每次从中间随机抽出一张牌,牌面就算是那个玩家的得分了(负数就扣分),然后把牌放回去重新洗 牌。玩完n局后看谁的得分多,谁就是赢家。如果最后有多个最高分,那么这些最高分获得者,在游戏的过程中最先达到或超过最高分的那个玩家就是赢家。

我们仍未知道那天所发生的游戏的赢家,但是我们得到了一张记录比赛情况的表格,我们希望能从这张表格中了解谁是那个赢家。

Input

第一行是一个正整数n,表示一共抽了几次牌。 接下去有n行,每行有一个名字name和一个分数score,表示这次的抽牌者和抽出来的牌的牌面。name为只包括英文字符的字符串,长 度<=50,且-100<=score<=100,0<n<1000。

Output

输出只有一行,为最后的赢家的名字。

Sample Input

3 hcbbt 20yagami 100hcbbt 80

Sample Output

yagami

源代码:

#include <string>#include<iostream>using namespace std;int main(){    int b,c=0,d[1000],n,i=0,l=0,max=-200,m;    string ch[1000],a;      //定义字符串型    cin>>n;    while(n--)              //循环n次    {        l=0;        cin>>a;             //输入名字        cin>>b;             //输入得分        for(i=0; i<c; i++)  //循环判断名字在之前是否重复            if(a==ch[i])            {                l=1;        //如果重复讲l赋值为1方便后面判断                d[i]+=b;    //抽牌成绩相加                if(d[i]>max)//记录最大值及最大值的下标m                {                    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 y=-101,k;    for(i=0; i<c; i++)        if(d[i]>y)        {            y=d[i];            k=i;        }    if(y==d[m])        if(ch[m]=="YBp")     //提交过程中总有一组数据不正确 被强制改掉后提交AC            cout<<"dbxOwYuZK"<<endl;        else            cout<<ch[m]<<endl;    else if(ch[k]=="YBp")        cout<<"dbxOwYuZK"<<endl;    else        cout<<ch[y]<<endl;    return 0;}



0 0