網際網路程式設計全國大賽
初賽題目
題目(4) 拱豬計分程式
執行檔 | HEART.EXE |
輸入檔 | HEART.IN |
輸出檔 | HEART.OUT |
執行時間限制 | 30 秒 |
拱豬是一種很有趣的撲克牌遊戲。 即使你不知道它的玩法,你也可以由它的計分方式來了解它的趣味性。 假設在此我們僅考慮四個人的拱豬牌局,本題要求你根據下面的計分規則,在牌局結束時計算四位玩家所得分數。
- 我們分別以 S、H、D 及 C 來代表黑桃,紅心,紅磚及梅花,並以數字 1 至 13 來代表 A、2、…、Q、K 等牌點,例如︰ H1 為紅心 A,S13 為黑桃 K。
- 牌局結束時,有關計分的牌(計分牌)並由各玩家持有的僅有 S12 (豬),所有紅心牌,D11 (羊)及 C10 (加倍)等16張牌。其他牌均棄置不計。若未持有這 16 張牌之任一張則以得零分計算。
- 若持有 C10 的玩家只有該張牌而沒有任何其他牌則得 +50 分,若除了 C10 還有其他計分牌,則將其他計分牌所得分數加倍計算。
- 若紅心牌不在同一家,則 H1 至 H13 等 13 張牌均以負分計,其數值為 -50,-2,-3,-10,-5,-6,-7,-8,-9,-10,-20,-30,-40。而且 S12 與 D11 分別以 -100 及 +100 分計算。
- 若紅心牌 H1 至H13 均在同一家,則稱 豬羊變色,有下列情形︰
- 所有紅心牌皆由負分變為正分。
- 若 S12、D11 皆在吃下所有紅心牌之一家,則此玩家得 +500 分。
- 若 S12、D11 落在不同玩家,則 S12 以 +100 分,D11 以 -100 分計算之。
- 而 C10 還是以前面所述原則計算之。
例一:若各玩家持有計分牌如下:(每列代表一玩家所持有之牌)
S12 H3 H5 H13
D11 H8 H9
C10 H1 H4 H2 H6 H7
H10 H11 H12
則各家之得分依序為:-148、+83、-150 及 -60。
例二:若各玩家持有計分牌如下:(第四家未持有任何計分牌)
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13
S12 C10
D11
則各家之得分依序為:+200、+200、-100 及 0。
例三:若有一玩家持有所有 16 張計分牌,則得 +1000 分。其餘三家均得零分。
輸入檔說明
每組資料有四列,每一列第一個數字為該玩家所持有計分牌總數,而後列出其所持有之所有計分牌,牌數與各計分牌均以一個以上的空格分開。每組資料間不會有空白行,讀到四家持牌數都為 0 表示檔案結束。
輸出檔說明
每組輸出各顯示在一列中,印出各家所得分數,共四個整數(含正負號,0 除外),以空白分開,符號和數字間不可以有空白。每組輸出間不可有空白行。
範例
HEART.IN |
4 S12 H3 H5 H13
3 D11 H8 H9
6 C10 H1 H4 H2 H6 H7
3 H10 H11 H12
13 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13
2 S12 C10
1 D11
0
0
0
0
0
|
|
HEART.OUT |
-148 +83 -150 -60
+200 +200 -100 0
|
|