小游戏

小游戏

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 3
描述

Ciel 和 他的好朋友 Liss 玩一个角色游戏。他们都控制一个英雄在直线上移动,开始Ciel的英雄在x点,每次移动距离范围为[0, Mov1]. Liss 的英雄在y点,每次移动距离范围为[0, Mov2]

Ciel和 Liss 轮流控制自己的英雄移动(Ciel 先手),英雄每次移动距离必须在自己的范围内且是整数。当Cile的英雄落在Liss的英雄当前所在位置,则Liss的英雄被击杀,Ciel获胜。反之Liss获胜。

输入
多则测试数据。
每组输入数据占一行,一次输入四个整数 x,Mov1 , y, Mov2
数据范围在 [0,100 000 000]
输出
如Ciel获胜输出 Ciel,反之输出Liss, 都不能获胜则输出Draw
样例输入
0 150 5 150
0 5 10 5
5 4 15 20
样例输出
Ciel
Draw

Liss

/*
分析:1、首先应该考虑第一回合会不会分出胜负,若mov1>=d,那么Ciel赢,若mov2>=d+mov1,Liss赢(Liss后手,要加mov1)

2、若第一回合分不出胜负,那么需要比较mov1,mov2

(1)mov1==mov2,一定是平局

(2)mov1>mov2,Ciel走得快,那么Ciel如果想赢,必须在追着Liss走了x步时能打到Liss,但是又要防止Liss在x-1步时反向走倒打一耙,所以需要满足条件,

mov1-mov2>mov2。也可以理解为,当Ciel走到和Liss距离为mov1时,Liss又会走mov2,那么Ciel必须保证第x步走到和Liss距离为mov1-mov2,然后Liss走第x步走过mov2,然后这时轮到Ciel走第x+1步,此时距离为mov1,那么一走一打刚好打到Liss,其中,当Ciel走完第x步而Liss未走第x步时,二者距离最近,为mov1-mov2,必须保证这个距离大于mov2,否则Liss就会倒打一耙,就是平局。

(3)mov1<mov2,和(2)同理
*/

#include <stdio.h>

int main()
{
    int x, y, movx, movy;
    while(scanf("%d%d%d%d", &x, &movx, &y, &movy) != EOF)
    {
        if((x > y ? x-y : y-x) <= movx)
        {
            printf("Ciel\n");
        }
        else if(movx == movy)
        {
            printf("Draw\n");
        }
        else
        {
            if(movx > movy)
            {
                if(movx > 2*movy)   //能防止倒打一耙而且又能打到的最小距离为2*movy
                {
                    printf("Ciel\n");
                }
                else
                {
                    printf("Draw\n");
                }
            }
            else
            {
                if(movy > 2*movx)    //与上面同理
                {
                    printf("Liss\n");
                }
                else
                {
                    printf("Draw\n");
                }
            }
        }
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值