e372. 對發票
標籤 : bruteforce implementation
通過比率 : 8人/11人 ( 73% ) [非即時]
評分方式:
Tolerant

最近更新 : 2019-09-20 15:28

內容

  某天,閒來無事的你開始整理房間,結果發現一大堆散落的發票,本來想直接忽視它但你的腦中突然閃現《果然我的青春戀愛喜劇搞錯了》的畫面,偷偷期待的是不是有可能中個 200 元來去買小說的你,手中已經不自覺得撿拾發票,太好了 ! 發票還沒過期,嘴角不自覺上揚的你決定來試試運氣。

  每張發票都只有 8 個 0 到 9 的數字,而中獎號碼範例如下圖:

      

 

  現在你有 N 張發票,並且給你中獎號碼們,中獎號碼與上圖一樣有特別獎、特獎、三組頭獎、二獎到六獎以及兩個增開獎,不巧的是有些發票被弄髒了,一張發票至多有一個數字無法辨識,請計算出你最高可能中獎金額和最低可能中獎金額。

  中獎金額與上方的圖相同,且特別獎、特獎、頭獎都是要全部一樣才算中獎,增開獎則是末三碼與他的兩組數字其中一個相同即算中獎,每張發票只能兌換一個獎項,並以最高金額優先。

  e.x. 如果有發票同時中了特別獎和增開獎,則算1000萬的金額。

輸入說明

首行輸入一個字串 a 代表特別獎號碼(長度 8,由 0~9 組成)。

次行輸入一個字串 b 代表特獎號碼(長度 8,由 0~9 組成)。

第三行輸入三個字串 x,y,z 代表頭獎號碼(長度 8,由 0~9 組成)。

第四行輸入兩個字串 s,t 代表兩個增開獎號碼(長度 3,由 0~9 組成)。

第五行輸入一個整數 N (1≤ N ≤103),代表你要比對的發票數量。

接下來 N 行各有一個字串 num (長度 8,由 0 ~ 9 和 '*' 組成),代表你的每張發票的號碼。

輸入保證 a,b,x,y,z 皆相異 , s,t 後三碼皆異於 x,y,z 後三碼。

輸出說明

輸出最高可能中獎金額總和以及最低可能中獎金額總和

範例輸入 #1
輸入範例一
46356460
56337787
93339845 83390355 80431063
984 240
4
46356460
56337787
93339845
12345240
輸入範例二
12345678
98765432
11111111 22222222 33333333
432 678
3
98765432
11111*11
9876543*
輸入範例三
00000000
11111111
22222222 33333333 44444444
000 666
3
00000000
0000000*
0000*000
範例輸出 #1
輸出範例一
12200200 12200200
輸出範例二
4200000 2000000
輸出範例三
30000000 10000200
測資資訊:
記憶體限制: 64 MB
提示 :

比賽只有無汙點的情況,此為加強版。

日後仍有可能變動測資,若題敘或測資有問題歡迎寄信。

 

本題共有四組測試題組,條件限制如下所示。每一組可有一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。

子任務

額外輸入限制

#00, #08, #14, #19-20

N ≤10,無汙點

#01-02, #09, #15, #18, #21-#23

N ≤103 ,無汙點

#03, #06, #10, #12, #16

N ≤10

#04-05, #07, #11, #13, #17, #24, #27-29

無特別限制。

 

標籤:
bruteforce implementation
出處:
108學年度板橋高中校內資訊學科能力競賽Day3_pD310573sao [管理者: 310573sao (Jiburiru) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
19255 310573sao (Jiburiru) e372
賽後題解
1007 2019-09-20 20:39