家务分配问题

家务分配问题

lcy和Ypop因为谁做家务的问题争执了起来,lcy每天辛辛苦苦上班,Ypop每天辛辛苦苦科研,其实这两个人都是大懒虫(其实lcy更懒),所以lcy和Ypop决定玩骰子游戏,
他们用三颗六面的骰子,游戏规则如下:
1.点数的优先级是1点最大,其次是6,5,4,3,2。
2.三个骰子点数相同,称为"豹子",豹子之间按点数优先级比较大小。
3.如果只有两个骰子点数相同,称为"对子",对子之间按点数优先级比较大小。
4.其他情况称为"点子",点子按点数和比较大小。
5.豹子比对子、点子大,对子比点子大,如果对子的点数优先级相同,就看剩余那个骰子的点数优先级。
现在给你lcy和Ypop投掷骰子的情况,判断一下胜负情况。

输入
第一行输入一个整数K,表示游戏的次数。 以后每两行表示一个样例,第一行是lcy骰子的点数。第二行是Ypop骰子的点数。
输出
如果是lcy赢,输出"lcy",如果是Bob赢,输出"Ypop",否则输出"Draw"。
样例输入
3
1 1 1
6 6 6
2 1 2
4 5 4
4 5 6
6 5 4
样例输出
lcy
Ypop
Draw

思路分析

本题可采用积分制,将游戏规则转化为积分,再比较他们的分数

AC代码

#include<stdio.h>
int K;
int a[3];
int b[3];
int f(int x,int y,int z);
int main()
{
    scanf("%d",&K);
    while(K--)
    {
        for(int i=0;i<3;i++)
        scanf("%d",&a[i]);
        for(int i=0;i<3;i++)
        scanf("%d",&b[i]);
        int l,B;
        l=f(a[0],a[1],a[2]);
        B=f(b[0],b[1],b[2]);
        if(l==B) printf("Draw\n");
        else if(l>B) printf("lcy\n");
        else if(l<B) printf("Ypop\n");
    }
    return 0;
}
int f(int x,int y,int z)
{
    int ans=0;
    if(x==y&&x==z)
    {
        if(x==1) x=7;
        ans=100+x;
    }
    else
    {
        if(x==y||x==z||y==z)
        {
            int t,r;
            if(x==y)  
            {
                t=x;
                r=z;
            }
            else if(x==z) 
            {
                t=x;
                r=y;
            }
            else if(y==z)   
            {
                t=y;
                r=x;
            }
            if(t==1) t=7;
            if(r==1) r=7;
            ans=10*t+r;
        }
        else 
        {
            ans=x+y+z;
        }

    }
    return ans;
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值