“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-神无月排位赛

神无月排位赛(“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛(重现赛))

发布时间: 2017年7月9日 18:30   最后更新: 2017年7月9日 21:18   时间限制: 1000ms   内存限制: 128M

《神无月》作为盛大游戏2017年的全新原创大作,其开发团队在自研实力强大的传世工作室基础之上,还有美树本晴彦等日本一线知名画师及日本游戏音乐大师崎元仁加盟参与制作。目前正在不限号内测中,有很多玩家进入到神无月的世界中。

在神无月中,有着玩家之间切磋的排位赛,其段位主要分为五大段位,从低到高依次为:新兵、菁英、战将、统帅、王者。每个玩家只有从新兵段位慢慢努力,一点点晋级才能到达王者段位。成为一个王者是每一个玩家的追求和心愿。

image.png

假设神无月的段位系统如下:

从低到高的段位依次简记为:D、C、B、A、S。玩家打排位赛,每胜利1局增加10分,输1局扣除5分。每一个段位都需要积分,累计100分才可以进入晋级赛,晋级赛采用三局两胜制(3局中达到2局胜利就晋级成功,有2局失败就算晋级失败, 连胜或连败两局,第三局不需要打了)。晋级成功后,成为下一个段位,积分变为0,重新开始算分;如果晋级失败,则积分变为60,重新开始算分。为方便计算,如果该玩家一直输,积分降为0后,不再降分,也不会掉段位。

大圣同学最近对神无月非常喜欢,一直在努力成为王者。他从新兵0分开始打排位赛(刚开始处在段位D),他告诉你最近若干场比赛的最后胜利情况,请你写个算法猜猜他现在所处的段位。当段位到达S时,段位将不再提高。

有若干组数据。
每组的第一行为一个 N 0<N<500 ),表示有 N 场比赛数据。
第二行有 N 个数字,每个数字之间有空格隔开,每个数字代表每场比赛的输赢情况, 1 表示赢, 0 表示输。
注意:当第 n 场比赛结束时,若大圣同学正处于晋级赛,并且还无法决定晋级成功或失败,那么可以忽略这场晋级赛

对于每组比赛数据,输出最后所处的段位的一个英文字符( D C B A S 这五个段位中的一个)。

  复制
15
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
30
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
C
B
水题
注意下题目细节
代码:
#include<stdio.h>
#include<string.h>
int a[510];
int main()
{
    int N=0;
    while(scanf("%d",&N)!=EOF)
    {
        memset(a,0,sizeof(a));
        int i,j;
        int sum=0;
        int count=0;
        int flag=0;
        for(i=0;i<N;i++)
        {
            scanf("%d",&a[i]);
        }
        for(i=0;i<N;i++)
        {
            if(a[i]==1)
                sum+=10;
            else //if(a[i]==0)
                sum-=5;
            if(sum>=100&&count!=4&&i+1<N)
            {
                if(a[i+1]+a[i+2]==2)
                {
                  sum=0;
                  count++;
                  i+=2;
                }
                else if(a[i+1]+a[i+2]==0)
                {
                    sum=60;
                    i+=2;
                }
                else if(a[i+1]+a[i+2]==1)
                {
                    if(a[i+3]==1)
                    {
                        sum=0;
                       count++;
                       i+=3;
                    }
                    else
                    {
                       sum=60;
                       i+=3;
                    }
                }


            }
            if(count==4)
            {
               flag=1;
               continue;
            }
            if(sum<=0)
            {
                sum=0;
            }


        }
        if(flag==1)
            printf("S\n");
        else
        {
            printf("%c\n",'D'-count);
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值