欢乐斗牛(计蒜客)

(110) 2024-03-28 07:01:01

hzf 最近迷上 QQ 游戏欢乐斗牛。

斗牛的规则如下,游戏开始的时候,每位玩家发 55 张扑克牌,每张牌都是 A-K 中的一张牌(11 表示 A,2-10210 表示对应的牌,1111-J,1212-Q,1313-K)。每张牌都有一个点数,1-10110 分别对应其点数,11-131113 对应点数 1010。牌型分为以下 55 种情况,牌型的优先级按照给定从上到下。

  1. 四炸——55 张牌中有 44 张牌相同 ,优先级最高。
  2. 五小牛——即五张牌点数都小于 55,且 55张牌的点总数和小于或等于 1010,优先级次之。
  3. 牛牛——其中 33 张牌的点数和是 1010 的整数倍,另外 22 张牌的点数和是 1010 的整数倍。
  4. 牛 x(x=1,2,3\ldots 9)x(x=1,2,39)——其中 33 张牌的点数和是 1010 的整数倍,另外 22 张牌的点数和对 1010 取模为 xx
  5. 以上情况都不是,就是无牛。

hzf 要根据自己的牌型来决定自己的下注的倍数,但是 hzf 总是不能看出他的牌型,你能写一个程序帮助他吗。

输入格式

一行输入 55 个空格隔开的整数。

输出格式

若牌型为四炸,输出一行quadra bomb orz

若为五小牛,输出一行penta calf

若为牛牛,输出一行you can you up

若为牛 x,输出一行too young too simple:calf x

若为无牛,输出一行gg.

样例输入1
10 10 10 1 1

样例输出1
too young too simple:calf 2

样例输入2
10 10 10 10 9

样例输出2

quadra bomb orz

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
/*
 * 很简单,按优先级依次判断牌面是否满足当前情况即可。源代码依然不知道谁写的,但可读性显然很强。
*/
using namespace std;

int main()
{
   int num[6];
   for(int i=0;i<5;i++)
   {
       scanf("%d",&num[i]);
       if(num[i]>10) num[i]=10;
   }
   sort(num,num+5);
   int flag=1;
   int a=num[0],b=num[4];
   int cou1=0,cou2=0;
   for(int i=0;i<5;i++)
   {
       if(num[i]==a) cou1++;
       if(num[i]==b) cou2++;
   }

   if(cou1>=4||cou2>=4)
   {
       printf("quadra bomb orz\n");
       return 0;
   }

   int cou=0;
   int sum=0;
   for(int i=0;i<5;i++)
   {
       if(num[i]<5) cou++;
       sum+=num[i];
   }
   if(cou==5&&sum<=10)
   {
       printf("penta calf\n");
       return 0;
   }

   int sum1=0,sum2=0;
   flag=0;
   for(int i=0;i<5;i++)
   {
       for(int j=i+1;j<5;j++)
       {
           sum1=num[i]+num[j];
           sum2=sum-sum1;
           if(sum1%10==0&&sum2%10==0)
           {
               flag=1;
           }
       }
   }
   if(flag)
   {
       printf("you can you up\n");
       return 0;
   }

   int x;
   flag=0;
   for(int i=0;i<5;i++)
   {
       for(int j=i+1;j<5;j++)
       {
           sum1=num[i]+num[j];
           sum2=sum-sum1;
           if(sum2%10==0)
           {
               x=sum1%10;
               flag=1;
           }
       }
   }
   if(flag)
   {
       printf("too young too simple:calf %d\n",x);
       return 0;
   }
   printf("gg\n");
   return 0;
}

THE END

发表回复