• Codeforces 2A. Winner


    题意:找出胜利者,即总得分最高的。当有不止一个最高分的人比较坑,输出最高分中的人,条件是,这个人在过程中是第一个获得大于等于最高分的人。(有点绕,仔细理解)

    题目链接:http://codeforces.com/problemset/problem/2/A

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <map>
    #include <set>
    
    using namespace std;
    
    string name[1005];
    string st;
    int a[1005];
    
    map<string,int>s;
    
    int main()
    {
        int n,x;
        string allname[1005];
        cin>>n;
    
        string STR;
        int k=1;
        for(int i=1; i<=n; i++)
        {
            cin>>st>>x;
            a[i]=x;
            allname[i]=st;
            if(s.find(st)==s.end())
            {
                s[st]=0;
                name[k++]=st;
            }
            s[st]+=x;
        }
        int Max=-1e9;
        for(int i=1; i<k; i++)
        {
            if(s[name[i]]>Max)
            {
                Max=s[name[i]];
            }
        }
        int kk=1;
        string maxname[1005];
        map<string,int>ans;
        for(int i=1; i<k; i++)
        {
            if(s[name[i]]==Max)
            {
                maxname[kk++]=name[i];
                ans[name[i]]=0;
            }
        }
        int num=kk-1;
        int t=0;
        map<string,int>fuck;
        for(int i=1; i<=n; i++)
        {
            if(ans.find(allname[i])!=ans.end())
            {
                if(fuck.find(allname[i])==fuck.end())
                {
                    fuck[allname[i]]=0;
                }
                fuck[allname[i]]+=a[i];
                if(fuck[allname[i]]>=Max)
                {
                    STR=allname[i];
                    break;
                }
            }
        }
    
        cout<<STR<<endl;
    
        return 0;
    }
  • 相关阅读:
    【待整理】转义字符
    关系运算符 与 逻辑运算符
    浏览器相关
    正则表达式
    样式定义——多重浏览器
    事件
    属性定义
    数组
    日期
    构造函数
  • 原文地址:https://www.cnblogs.com/mengzhong/p/4957195.html
Copyright © 2020-2023  润新知