網際網路程式設計全國大賽

初賽題目


題目(4) 拱豬計分程式
執行檔HEART.EXE
輸入檔HEART.IN
輸出檔HEART.OUT
執行時間限制30 秒

拱豬是一種很有趣的撲克牌遊戲。 即使你不知道它的玩法,你也可以由它的計分方式來了解它的趣味性。 假設在此我們僅考慮四個人的拱豬牌局,本題要求你根據下面的計分規則,在牌局結束時計算四位玩家所得分數。

  1. 我們分別以 S、H、D 及 C 來代表黑桃,紅心,紅磚及梅花,並以數字 1 至 13 來代表 A、2、…、Q、K 等牌點,例如︰ H1 為紅心 A,S13 為黑桃 K。
  2. 牌局結束時,有關計分的牌(計分牌)並由各玩家持有的僅有 S12 (豬),所有紅心牌,D11 (羊)及 C10 (加倍)等16張牌。其他牌均棄置不計。若未持有這 16 張牌之任一張則以得零分計算。
  3. 若持有 C10 的玩家只有該張牌而沒有任何其他牌則得 +50 分,若除了 C10 還有其他計分牌,則將其他計分牌所得分數加倍計算。
  4. 若紅心牌不在同一家,則 H1 至 H13 等 13 張牌均以負分計,其數值為 -50,-2,-3,-10,-5,-6,-7,-8,-9,-10,-20,-30,-40。而且 S12 與 D11 分別以 -100 及 +100 分計算。
  5. 若紅心牌 H1 至H13 均在同一家,則稱 豬羊變色,有下列情形︰

例一:若各玩家持有計分牌如下:(每列代表一玩家所持有之牌)

       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