Problem J: 扑克牌游戏
Description
有一种称为10—20—30的用52张不考虑花色的纸牌游戏。人头牌(K、Q、J)的值是10,A的值是1,任何其他牌的值是它们的面值(如2、3、4等)。牌从牌堆的顶端发起。你先发7张牌,从左至右形成7组。当给最右边一组发了一张牌后,下一张牌就应发最左边的一组。每给一组发一张牌时,查看这组牌的以下三张牌的组合的总和是否为10、20或30:
(1)前两张和最后一张
(2)第一张和最后二张
(3)最后三张
如果是这样,就抽出这三张牌并将其放在牌堆的底部。对于这个问题,总是按上面给出的顺序查看牌。按牌在组中出现的顺序将它们取出并放在牌堆的底部。当抽出三张牌时,又有可能出现三张可以抽出的牌。如果是这样,再将它们抽出。如此重复直至再也不能从这组牌抽出符合条件的牌为止。
举例来说,假设有组牌含5、9、7、3。5是第一张牌,然后发出6。前两张牌加最后一张牌(5+9+6)等于20。抽出这三张牌后这组牌成为7、3。(如图1所示),而手中牌堆的底部增加了5,9,6的三张牌。
如果发的不是6而是Q,那么5+9+10=24,5+3+10=18,但7+3+10=20,因此最后三张牌可以抽走,剩下5、9(如图2)。此时,手中牌堆的底部增加了7,3,Q的三张牌。
如果有一组只含有三张牌且这组牌的和为10、20或30,那么这组牌被抽走后就“消失”了。这就是说,随后的发牌将跳过现在成为空的这组牌的位置。当所有牌组都消失,你就获胜。当你无牌可发时,你游戏失败。当前两种情况都不发生时(出现循环),游戏结果为平局。编写一个程序,将初始的牌堆作为输入,完成10—20—30游戏。
Input
输入由52个整数组成,由空格分开。整数表示初始牌堆的面值。第一个整数是牌堆的最顶端的牌。
Output
第一行,输出游戏结果,win(胜)、loss(负)、draw(平局)
第二行,输出游戏结果所发的牌数。(假如游戏状态发生重复,意味着平局)Sample Input Copy
2 6 5 10 10 4 10 10 10 4 5 10 4 5 10 9 7 6 1 7 6 9 5 3 10 10 4 10 9 2 1 10 1 10 10 10 3 10 9 8 10 8 7 1 2 8 6 7 3 3 8 2
Sample Output Copy
win
66
HINT
【样例输入2】
4 3 2 10 8 10 6 8 9 5 8 10 5 3 5 4 6 9 9 1 7 6 3 5 10 10 8 10 9 10 10 7 2 6 10 10 4 10 1 3 10 1 1 10 2 2 10 4 10 7 7 10
【样例输出2】
loss
82
【样例输入3】
10 5 4 3 5 7 10 8 2 3 9 10 8 4 5 1 7 6 7 2 6 9 10 2 3 10 3 4 4 9 10 1 1 10 5 10 10 1 8 10 7 8 10 6 10 10 10 9 6 2 10 10
【样例输出3】
draw
73