zoukankan      html  css  js  c++  java
  • codeforces 2A

    原题链接:

      http://codeforces.com/problemset/problem/2/A

    题意:

      游戏结束后,得分最多(用maxSco表示最大分)者获胜(分数可为负),若有多个人分数最多,则得分先达到maxSco者获胜;

      这里特殊说一下:

        在游戏过程中玩家可能得分也肯能减分;

        那么当多个人是maxSco时,先达到maxSco者获胜,这个先达到应该这样理解:

          如数据:a  2

              b  1

                                a  -1

          a最开始就是2分是由于后来减了1分才与b同分;根据正常思想是b获胜;

          实则是a获胜因为a比b先达到(甚至大于)maxSco的人;

    代码:

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<string>
     4 #include<cstring>
     5 
     6 using namespace std;
     7 
     8 struct sta{
     9     
    10     string name;
    11     int sum;
    12     int index;
    13 }a[1002],b[1002],c[1002],ans;
    14 
    15 int main()
    16 {
    17     int n;
    18     int i,j,d=-1;
    19     int maxSco=-1000003,minIndex;
    20     ans.sum=-1000003;
    21     cin>>n;
    22     for(i=0;i<n;i++)
    23     {
    24         cin>>b[i].name>>b[i].sum;
    25         for(j=0;j<=d;j++)
    26         {
    27             if(a[j].name==b[i].name)
    28             {
    29                 a[j].sum+=b[i].sum;
    30                 break;
    31             }
    32         }
    33         if(d==j-1)
    34         {
    35             a[++d].name=b[i].name;
    36             a[d].sum+=b[i].sum;
    37         }
    38     }
    39     for(i=0;i<=d;i++)
    40     {
    41         if(maxSco<a[i].sum)
    42             maxSco=a[i].sum;
    43     }
    44     d=-1;
    45     for(i=0;i<n;i++)
    46     {
    47         for(j=0;j<=d;j++)
    48         {
    49             if(c[j].name==b[i].name)
    50             {
    51                 c[j].sum+=b[i].sum;
    52                 if(c[j].sum>=maxSco&&c[j].index==-1)
    53                 {
    54                     c[j].index=i;
    55                 }    
    56                 break;
    57             }
    58         }
    59         if(d==j-1)
    60         {
    61             c[++d].name=b[i].name;
    62             c[d].sum=b[i].sum;
    63             c[d].index=-1;
    64             if(c[d].sum>=maxSco)
    65                 c[d].index=i;
    66         }
    67     }
    68     for(i=0; i<=d; i++)
    69     {
    70         if(ans.sum<c[i].sum||(ans.sum==c[i].sum&&c[i].index<ans.index))
    71             ans=c[i];
    72     }
    73     cout<<ans.name<<endl;
    74     return 0;
    75 }

    --------------欢迎评论----------------

  • 相关阅读:
    Linux Apache安装加载mod_deflate模块
    Ubuntu配置apache2.4配置虚拟主机遇到的问题
    Apache启用GZIP压缩网页传输方法
    apache高负载性能调优
    在Linux系统上查看Apache服务器的错误日志
    Ubuntu Apache配置及开启mod_rewrite模块
    APACHE支持.htaccess
    apache 虚拟主机详细配置:http.conf配置详解
    ASP.NET WEB项目文件夹上传下载解决方案
    JAVA WEB项目文件夹上传下载解决方案
  • 原文地址:https://www.cnblogs.com/x-x-y/p/6978761.html
Copyright © 2011-2022 走看看