首页 > Windows开发 > 详细

2A - Winner

时间:2021-04-02 17:21:58      阅读:30      评论:0      收藏:0      [点我收藏+]

原题链接https://codeforces.com/problemset/problem/2/A

这题我写的时候又wa了, 原因是我只维护了过程中的最大值,没有注意要先按照总成绩来看。

题意:按顺序给你一些人和它的得分,统计出每个选手的总成绩,然后找到得分最多的选手,考虑到可能存在多个选手得到最高分,那么就以最先得到最高分的选手为获胜者。

思路:就是先搞出总成绩,然后搞过程成绩,按顺序看,第一个满足总成绩和中间成绩都 >= 最大总成绩的就是答案

代码如下

map<string,int> f, g;
string s[N];
int c[N];

int main()
{
	int n;
    cin >> n;
    for(int i = 0 ; i < n ; ++ i)
    {
		cin >> s[i] >> c[i];
		f[s[i]] += c[i];
	}
    int maxd = 0;
    for(int i = 0 ; i < n ; i ++)
    	maxd = maxd < f[s[i]] ? f[s[i]] : maxd;
    	
    int i;
    for(i = 0 ; f[s[i]] < maxd || (g[s[i]] += c[i]) < maxd ; ++ i);
    cout << s[i] << endl;
	
	return 0;
}

2A - Winner

原文:https://www.cnblogs.com/luoyicong/p/14610289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!