#P5013. 水の斗牛
水の斗牛
题目背景
蒟蒻拉着和等一众机房巨佬来打斗牛辣!!
题目描述
现在一共有个人玩起了斗牛。一共玩了T局,每局有三个人参与游戏,每个人的初始分都是0。
本题为了方便,对于斗牛的基本规则做了些许变动,具体规则如下:
1.基本规则
每一轮斗牛开始时,每一位玩家都会拿到5张牌。
每张牌一定是一个2到10之间的整数或A(表示1)。
每张牌有一个花色,a代表黑桃,b代表红桃,c代表梅花,d代表方块。
2.牌型
五张牌中,除炸弹和无牛牌型以外,都分为两个部分:牛和分。其中牛包括三张点数相同(铁板)或三张点数和为10的倍数的牌,分包括剩下的两张牌,一套牌的分即为这两张牌模10的余数。
1)炸弹:四张点数相同的牌。
2)牛牛:分恰好为0。
3)牛:分不为0,分和牛数的数值相同。如分是5,则这套牌被称为牛五。
4)无牛:不存在三张牌,其点数相同或其点数和为10的倍数。
3.牌型大小关系
炸弹>牛牛>牛九>牛八>……>牛二>牛一>无牛
双方拥有炸弹时,炸弹点数大的更大;
相同牛数且只有一方有铁板时,有铁板的比没有铁板的大;
相同牛数且双方拥有铁板时,铁板点数大的更大;
相同牛数且双方均没有铁板或双方均无牛时,我们比较双方牌中点数最大的一张牌,点数更大的一方更大;若双方点数最大的一张牌点数相同,则花色更大的一方更大,花色大小为黑桃>红桃>梅花>方块。
4.计分
一局牌的底分为10,即每位玩家都会押10分。
对于其中的两位玩家,我们在比较完双方的牌型之后,选择牌型更大的一方的牌型来计算得失分数的翻倍。具体如下:
1)炸弹:底分×10。
2)牛牛:底分×3。
3)牛七/牛八/牛九:底分×2。
4)牛六~牛一:底分。
5)无牛:底分。
6)铁板:在计算完牌型得分之后,在牌型得分的基础上×2。注意铁板翻倍不与炸弹同时进行。
我们在计分时,采用两两之间计分的方式,也就是说对于三名玩家A、B、C,我们先计算A和B之间的分数得失,再计算A和C之间的分数得失,最后计算B和C之间的分数得失。
现在我们假设所有玩家都足够聪明,也就是说,所有玩家都会打出他们手上的牌中最大的牌型。想知道,在这T轮游戏结束之后,每位玩家的得分情况。
输入格式
第一行两个整数id,T,N。其中id表示测试点编号,对于部分分可能有一定帮助。其中样例的测试点编号为0。
接下来N行,每行一个仅包括大小写字母和数字的长度少于11的字符串表示玩家名称。
接下来T组,每组数据六行,可分为三个相同的部分:
第一行一个字符串表示玩家名称。
第二行五个字符串表示该玩家手中的手牌。每一个字符串的第一个字符表示花色,其余字符表示牌的大小。
输出格式
共N行,每行一个字符串和一个数字,中间用空格隔开。表示一名玩家和他的最终得分。
请按照玩家名称的输入顺序输出。
提示
样例一解释:
第一局玩家牌型如下:
:炸弹
:牛五
:铁板牛牛
所以加200分,扣160分,扣40分。
第二局中,所有人都是牛五,但是拥有黑桃五,拥有红桃五,拥有梅花五,所以加20分,没有变化,扣20分。
数据范围:
测试点编号 | 特殊性质 | ||
---|---|---|---|
性质4 | |||
- | 性质1 | ||
- | 性质2 | ||
- | 性质3 | ||
- | 性质5 | ||
- | |||
- | |||
- | |||
- | |||
- | 性质5,1.5s |
性质1:保证所有的人拥有炸弹。
性质2:保证每一手牌花色全部相同。
性质3:保证每一手牌所有数字不同。
性质4:保证数据手造。
性质5:保证数据随机生成。
保证每一局没有重复的牌。
保证每一个人的名字不相同。
保证出题人是。
保证数据没有锅。
不保证没有人能做出来。
不保证此题代码很长。