有没有C语言做的3A游戏,codeforces-3A-A. Winner (C++ 简单模拟)
题目意思就是给出一个各轮选手得分,最后输出分最高的那个人.
如果有多人分数一样高,那就输出先达到这个分数的人.
简单模拟,用stl的map来做.
1.统计每人分数,顺便把每轮的情况也记下来.
2.统计出最高分.
3.遍历每个人的总得分,找到分数最高的那些人.
4.遍历每轮的情况,第一个达到最高分的人,输出就好了.
#include
#include
#include
#include
#include
using namespace std;
//一开始没有考虑到负数的情况,出现了错误。出现负数的话,分数就会下降,之前的最大值就不会对。
map round;
map round2;
string name[1005];
int score[1005];
int main()
{
int count,i;
cin>>count;
round.clear();
int max = -1000005;
string max_name;
for(i=1;i<=count;i++)
{
cin>>name[i]>>score[i];
round[name[i]] += score[i];
}
for(i=1;i<=count;i++)
{
if(round[name[i]]>max)
{
max=round[name[i]];
}
}
for(i=1;i<=count;i++)
{
if(round[name[i]] == max)
{
round2[name[i]] += score[i];
if(round2[name[i]]>=max) //最先到达,这里的大于号就是考虑到出现负数的情况,分数越来越小
{
cout<
return 0;
}
}
}
return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
