時間限制 2000 ms ・ 記憶體限制 256 MB
題目描述
a-C-m 處理器只有兩種指令:A 將目前整數加上 a;M 將目前整數乘以 m。
請寫出最短的指令程式,使任何輸入 x ∈ [p,q] 執行後,都得到 y ∈ [r,s]。若有多個同樣長的程式,將完整指令視為 A、M 組成的字串,選字典順序最小者(A 排在 M 前)。
輸入格式
每行有六個整數 a、m、p、q、r、s,皆介於 1 到 10^9,且 p ≤ q、r ≤ s。六個 0 表示結束,不需處理。
輸出格式
每筆輸出 Case k: 結果。若不需任何操作,結果為 empty;若無解,為 impossible。
其他情況以連續相同指令的次數壓縮表示,例如 3A 2M 1A,各段以空白分隔。每段次數必須為正,A 與 M 段交替出現。最短與字典順序均以未壓縮的指令字串判定。
題目來源:UVa 1101 — To Add or to Multiply。 原題:https://onlinejudge.org/external/11/1101.pdf
範例測資
範例輸入 1
1 2 2 3 10 20 1 3 2 3 22 33 3 2 2 3 4 5 5 3 2 3 2 3 0 0 0 0 0 0
範例輸出 1
Case 1: 1A 2M Case 2: 1M 2A 1M Case 3: impossible Case 4: empty
請先登入後再提交程式碼
討論與題解
載入討論區…