2013年7月18日 星期四

735 - Dart-a-Mania


  Dart-a-Mania 


Description of the Game 

飛鏢遊戲相當多種,其中一種是 301 ,每個玩家的分數 301 往下扣,直到第一個玩家的分數確切等於零則宣告勝利。每名玩家一次可以扔擲三枚飛鏢,例如當前玩家分數 272,而他三枚飛鏢得到 55 分,則他的新分數將會是 217。

飛鏢將會射到靶上其中數字 1 到 20 的區域,如果得分為零,則表示玩家仍出靶外,或者玩家選擇不丟飛鏢。飛鏢丟入的區域分數會有三種,該編號的一倍、兩倍及三倍,例如:玩家可能或得分數 17, 34, 51 藉由仍擲到區域編號 17 的時候。而另外的得分則是擊中 BULLS EYE 將會得到 50 分。

如果得分大於當前分數,則不予計分,相當於分數不變。


Problem Statement 

給一名玩家的當前分數,計算接下來三枚飛鏢可以使得分數恰好為 0 的組合與排列。
程式應該要輸出組合的數量,以及排列的數量。排列與組合只看飛鏢的得分。


例如:當前玩家分數為 2,則組合有 2 種,排列方式則會有 3 種。第一種組合為,一次得分為 2,其餘兩次得分 0。第二種組合為,兩次得分為 1,剩餘一次得分為 0。



而六種排列方式如下:
排列編號       1 2 3 4 5 6
1st 飛鏢得分:
  2 0 0 1 1 0
2nd 飛鏢得分:  0 2 0 1 0 1
3rd 飛鏢得分:  0 0 2 0 1 1


Input 

測資最多有 999 筆,每筆測資會有一行一個整數表示當前玩家分數,讀到小於等於 0 的分數則終止程式。

Output 

對於每組測資輸出兩行或者三行,
如果分數可以減到 0,輸出的格式如下:


NUMBER OF COMBINATIONS THAT SCORES x IS c.
NUMBER OF PERMUTATIONS THAT SCORES x IS p.


x 表示當前玩家得分,c 表示組合數,p 表示排列數。


如果沒有辦法減到 0,則輸出一行:


THE SCORE OF x CANNOT BE MADE WITH THREE DARTS.


對於每組輸出後,輸出 70 個 '*'。

程式結束前輸出一行  ``END OF OUTPUT"

Sample Input 

162
175
2
68
211
114
-100

Sample Output 

NUMBER OF COMBINATIONS THAT SCORES 162 IS 7.
NUMBER OF PERMUTATIONS THAT SCORES 162 IS 28.
**********************************************************************
THE SCORE OF 175 CANNOT BE MADE WITH THREE DARTS.
**********************************************************************
NUMBER OF COMBINATIONS THAT SCORES 2 IS 2.
NUMBER OF PERMUTATIONS THAT SCORES 2 IS 6.
**********************************************************************
NUMBER OF COMBINATIONS THAT SCORES 68 IS 187.
NUMBER OF PERMUTATIONS THAT SCORES 68 IS 1056.
**********************************************************************
THE SCORE OF 211 CANNOT BE MADE WITH THREE DARTS.
**********************************************************************
NUMBER OF COMBINATIONS THAT SCORES 114 IS 82.
NUMBER OF PERMUTATIONS THAT SCORES 114 IS 445.
**********************************************************************
END OF OUTPUT



Miguel Revilla
2000-08-31