原题链接:

  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 }

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