a598. CPE:To Add or to Multiply (UVa 1101)

困難CPE

時間限制 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
請先登入後再提交程式碼

討論與題解

載入討論區…

更多