• [C] Let's Play Games

  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  • 无聊的人类们,让我们玩纸牌游戏吧~

    按从左至右的顺序发牌,并摆成一行,发牌不要相互重叠。游戏中一旦出现任何一张牌与它左边的第一张或第二张“匹配”,
    即花色或点数相同,则须立即将其移动到那张牌上面。
    如果牌被移动后又出现了上述情况,则需再次向左移动。
    每叠牌只能移动最上面的一张。如果一叠牌被移空,应该立即将右边各叠整体向左移动,补上这个空隙。
    依次将整副牌都发完,并不断的向左合并。如果全部移动结束后整副牌都放成了一叠,则游戏胜利。
    玩上几次你就会遇到一些状况。如果同时有两张牌都可以移动,你应该采取的策略是移动最左边的牌(当然必须是可以移动的)。
    即是当一张牌既可以移动到左边第一张,又可以移动到左边第二张时,应移动到左边第二张上面。
  • 输入
  • 输入到程序中的数据指定了一副牌的顺序。每组输入包括两行,每行26张牌,牌与牌之间用空格隔开。以#号开头的一行作为输入的结束行。
    每张牌由两个字符表示,第一个字符是点数:(A、 2-9、T=10、J、Q, K);第二个字符是花色:(C=梅花、D=方块、H=红心、S=黑桃)。
  • 输出
  • 每两行输入(定义了一副52张牌的顺序)必须产生一行输出。每行输出包括剩下的叠数以及每叠中的牌数。
  • 样例输入
  • QD AD 8H 5S 3H 5H TC 4D JH KS 6H 8S JS AC AS 8D 2H QS TS 3S AH 4H TH TD 3C 6S
    8C 7D 4C 4S 7S 9H 7C 5D 2S KD 2D QH JD 6D 9D JC 2C KH 3D QC 6C 9S KC 7H 9C 5C
    AC 2C 3C 4C 5C 6C 7C 8C 9C TC JC QC KC AD 2D 3D 4D 5D 6D 7D 8D TD 9D JD QD KD
    AH 2H 3H 4H 5H 6H 7H 8H 9H KH 6S QH TH AS 2S 3S 4S 5S JH 7S 8S 9S TS JS QS KS
    #
    
  • 样例输出
  • 4 piles remaining: 46 4 1 1
    1 pile remaining: 52
    
  • 提示
  • 来源
  • Three God
  • 操作

显示春菜