问题描述
hzf 最近迷上 QQ 游戏欢乐斗牛。
斗牛的规则如下,游戏开始的时候,每位玩家发5张扑克牌,每张牌都是A-K中的一张牌(1 表示 A,2−10 表示对应的牌,11-J,12-Q,13-K)。每张牌都有一个点数,1−10 分别对应其点数,11−13 对应点数10。牌型分为以下5种情况,牌型的优先级按照给定从上到下。
1.四炸——5张牌中有4张牌相同,优先级最高。
2.五小牛——即五张牌点数都小于5,且5张牌的点总数和小于或等于10,优先级次之。
3.牛牛——其中3张牌的点数和是10的整数倍,另外2张牌的点数和是10的整数倍。
4.牛 x(x=1,2,3…9)——其中3张牌的点数和是10的整数倍,另外2张牌的点数和对10取模为x。
5.以上情况都不是,就是无牛。
hzf 要根据自己的牌型来决定自己的下注的倍数,但是 hzf 总是不能看出他的牌型,你能写一个程序帮助他吗。
输入格式
一行输入5个空格隔开的整数。
输出格式
若牌型为四炸,输出一行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
AC代码
//由于时间要求不高所以可以合并的代码并没有合并
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<=4;i++)
{ int l;
cin>>l;
if(l>=11)l=10;
a[i]=l;
}
for(int i=0;i<=4;i++)
{int cnt=0;
for(int m=0;m<=4;m++)
{
if(a[i]==a[m])cnt++;
if(cnt==4){cout<<"quadra bomb orz";return 0;}
}
}
int ca=1;
int sumn=0;
for(int m=0;m<=4;m++)
{ if(a[m]>=5){ca=0;}
sumn+=a[m];
}
if((sumn<=10)&&(ca==1)){cout<<"penta calf";return 0;}
if((sumn%10)==0)
{
for(int m=0;m<=4;m++)
{
for(int n=0;n<=4;n++)
{
if(m==n)continue;
if(((a[m]+a[n])%10)==0){cout<<"you can you up";return 0;}
}
}
}
for(int m=0;m<=4;m++)
{
for(int n=0;n<=4;n++)
{
if(m==n)continue;
if(((sumn-a[n]-a[m])%10)==0){cout<<"too young too simple:calf "<<(a[m]+a[n])%10;return 0;}
}
}
cout<<"gg";
return 0;
}