撲克 (Poker)
問題敘述
過年期間,打牌是許多家庭的傳統活動。今年,當你從櫃子中翻出已久未用的撲克牌時,一個意外發生了。
由於存放撲克牌的盒子過於老舊,當你拿它出來時,牌散落了一地。
更麻煩的是,盒子裡不只放著一副撲克牌,而是混合了多副牌。你好不容易撿起你見到的每一張牌,但有些牌好像掉進櫃子間的縫隙了,你不確定現在到底能湊出幾副牌。 一副「完整牌組」包含52張牌,分為四個花色:紅心、方塊、梅花與黑桃。每個花色包含從2到10的數字牌,以及J、Q、K、A共13張牌。為了方便起見,撲克以1到52編號。
請撰寫一個程式,分析一堆混在一起的撲克牌,輸出: (1) 在不增加任何牌的情況下,以目前的牌最多能湊出幾副完整牌組; (2) 若要用上所有現有的牌去湊出完整牌組,最少還需要補幾張牌。
範例1:
總共有10張牌,湊不出一副完整的牌,還需要補42張牌。
範例2:總共有53張牌,其中可以湊出一副完整的牌,還需要補51張以湊出第二副牌。
範例3:總共有3張牌,有三張1,所以要湊出三副完整的牌,因此還需要補153張。
評分說明
此題目測資分為兩組,每組測資有多筆測試資料,需答對該組所有測資才能獲得該組分數,各組詳細限制如下。
第一組(20 分):輸入保證每個編號只會出現最多一次。
第二組(30 分):補的牌數量不會超過51張。 第三組(50 分):無特殊限制。 |