d088. 00127 - "Accordian" Patience
標籤 :
通過比率 : 100人/129人 ( 78% ) [非即時]
評分方式:
Strictly

最近更新 : 2015-08-28 14:45

內容

你的任務是模擬一種叫「Accordian」的紙牌遊戲,他的遊戲規則如下:

一副撲克牌有52張牌,首先把紙牌一張一張由左到右排好(不能有重疊,所以共有52堆牌,每堆一張),當某一張牌與他左邊那張牌或者左邊的第三張牌 有「Match」的時候,就把這張牌移到那張牌上面去。在這裡兩張牌「Match」指的是這兩張牌的花色(suit)或者點數(rank)一樣。當你做了 一個移動之後,要察看是否還可以做其他的移動。在任何時間,只有最上面那張牌可以被移動。如果因為移動一張牌使得產生一個空格(也就是被移動的那堆牌只有 一張牌),你必須把右邊所有的牌堆往左移一格。如此不斷的尋找可移動的牌,直到沒有一張牌可以移動遊戲就結束了。

在選擇可以移動的牌的時候可能有些狀況會發生。如果有兩張牌都可以移動,你應該要移動最左邊的那張牌。當一張牌可以被移動到左邊一格,或左邊三格的時候,你必須移動到左邊三格。

 

輸入說明

輸入包含多組測試資料。每組測試資料兩列,每列有26張牌的資料。每張牌以2個字元代表。第一個字元代表牌的點數(A=Ace, 2~9, T=10, J=Jack, Q=Queen, K=King),第二個字元代表牌的花色(C=Clubs, D=Diamonds, H=Hearts, S=Spades)

若遇到僅含#的一列代表輸入結束。請參考Sample Input。

輸出說明

對每組測試資料輸出遊戲結束時剩下幾堆牌,以及每堆牌有多少張牌。請注意如果只有1堆牌,pile後沒有加s,請參考Sample Output。

範例輸入 #1
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
#
範例輸出 #1
6 piles remaining: 40 8 1 1 1 1
1 pile remaining: 52
測資資訊:
記憶體限制: 512 MB
提示 :

* 中文翻譯:Lucky 貓

標籤:
出處:
UVa127 [管理者: MAPLEWING (灆洢騎士) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」