点击打开链接codeforce 2A
思路:模拟
分析:
1 题目要求的在游戏结束后最大的点的值的玩家,或者具有相同点值的情况下最早出现大于等于max的玩家。
2 很明显由于名次是一直在改变的,所以我们无法预测最后的max和已经最先出现大于等于max的玩家。所以这里我们采用做两次的模拟,第一次先算出max并且把最后点是max的玩家标记为1;第二次模拟找到标记为1的玩家里面最先出现大于等于max的玩家,然后输出即可。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
#define MAXN 1010
#define N 50
int n , pos;
int vis[MAXN];
int p[MAXN];
char input[MAXN][N];
char name[MAXN][N];
map<string , int>mp;
int main(){
int max , cnt;
while(scanf("%d%*c" , &n) != EOF){
/*第一次输入*/
for(int i = 0 ; i < n ; i++)
scanf("%s %d%*c" , input[i] , &p[i]);
/*第一次模拟*/
max = 0 , pos = 0;
for(int i = 0 ; i < n ; i++){
int flag = -1;
for(int j = 0 ; j < pos ; j++){
if(!strcmp(name[j] , input[i])){
flag = j;
break;
}
}
if(flag == -1)
strcpy(name[pos++] , input[i]);
mp[input[i]] += p[i];
}
/*做标记*/
memset(vis , 0 , sizeof(vis));
for(int i = 0 ; i < pos ; i++)
max = max < mp[name[i]] ? mp[name[i]] : max;
for(int i = 0 ; i < pos ; i++){
if(max == mp[name[i]])
vis[i] = 1;
}
/*第二次模拟*/
mp.clear();
for(int i = 0 ; i < n ; i++){
mp[input[i]] += p[i];
int tmp = 0;
for(int i = 0 ; i < pos ; i++){
if(tmp < mp[name[i]]){
tmp = mp[name[i]];
cnt = i;
}
}
/*找到最先出现的玩家*/
if(tmp >= max && vis[cnt])
break;
}
printf("%s\n" , name[cnt]);
}
return 0;
}
分享到:
相关推荐
codeforce701B题
#include using namespace std; int main(){ int n,k,i,x,ans=0,q[20]; cin>>n>>k; for(i=1;i;++i){ cin>>x; q[4]=0; q[7]=0; while(x) { ++q[x]; x/=10; } if(q[4]+q[7])++ans; } ...}
codeforce700B题
codeforce 701A题
codeforce700A题
codeforce Rudolf and the Another Competition的C语言写法(用了sort)
_我解决的Codeforce问题的解决方案_ Python解决方案 一个 4 69 281 344 546 630 749 791 977 1196 1223 1433 C语言解决方案 一个 4 69 344 546 630 705 749 791 977 1223 C ++解决方案 一个 4 ...
码力Codeforce解决方案
CodeForce 我提出的Codeforce问题
Codeforce:针对Codeforce上各种挑战的解决方案
程式设计有关Codeforce中存在的问题的C ++代码
CODEFORCE问题集解决方案
codeforces:Codeforce问题
解决问题的方法教育Codeforces回合101 - 2/6 常规托架顺序-接受红色和蓝色-接受Codeforces回合#686(Div.3) 2/6 特殊排列-接受唯一出价拍卖-接受序列转换-接受编号成序列-接受Codeforces回合#685(分区2) 2/7 减...
CodeForce_Solves 该存储库包含我针对Codeforce问题的解决方案。
codeforce_solutions:这是我的Codeforce练习集解决方案存储库
CodeForces问题解决方案:Codeforce问题解决方案。 专注于动态编程,数据结构,数论,图算法,二进制搜索
我在Codeforce上解决的一些问题:) 使用的CPP模板: //作者:Dipjoy Basak // dip_10 使用命名空间std #include ; #define endl“ \ n” #define ll long long #define ld long double #define pb push_back #...
Codeforce:针对第2分部的Codeforce的每一轮解决方案的说明