SP9440 ADDMUL - To Add or to Multiply
题目描述
Industrial Computer Processor Company 提供了一种针对客户需求定制的快速、专用处理器。a-C-m 系列处理器(如 1-C-2 和 5-C-3)仅包含两种不同的操作指令:
- A(Add):加法操作,将当前数值与某个值相加
- M(Multiply):乘法操作,将当前数值与某个值相乘
处理器接收一个整数作为输入,执行一系列 A 和 M 操作(即程序),并输出处理结果。例如,1-C-2 处理器执行程序 AAAM 并以 2 作为输入时,输出结果为 10(计算过程为 2 → 3 → 4 → 5 → 10),而 5-C-3 处理器在相同程序和输入下输出 51(2 → 7 → 12 → 17 → 51)。
你作为 a-C-m 程序员,被分配到一个顶级机密项目。这意味着你没有被告知你的程序应执行的确切计算。但给定了特定的值 _p_, _q_, _r_, 和 _s_ 以及以下条件:
1. 输入保证在 _p_ 和 _q_ 之间。
2. 输出必须在 _r_ 和 _s_ 之间。
给定一个 a-C-m 处理器和数值 _p_, _q_, _r_, 和 _s_,你的任务是构造最短的 a-C-m 程序,该程序对于每个输入 _x_(满足 _p_ ≤ _x_ ≤ _q_),都能产生输出 _y_(满足 _r_ ≤ _y_ ≤ _s_)。如果存在多个长度最短的程序,选择字典序最小的那个,即将每个程序视为由 A 和 M 组成的字符串。
输入格式
输入包含多个测试用例。每个测试用例由一行上的六个整数 _a_, _m_, _p_, _q_, _r_, 和 _s_ 给出(1 ≤ _a_, _m_, _p_, _q_, _r_, _s_ ≤ 100,且 _p_ < _q_ 和 _r_ < _s_)。
最后一个测试用例后跟随一行包含六个零。
输出格式
对于每个测试用例,显示其案例编号以及如上所述的最佳程序。如果最佳程序不使用任何操作,则显示单词“empty”。如果无法找到满足条件的程序,则显示单词“impossible”。
由 @[Yangbowen0108](https://www.luogu.com.cn/user/702258) 提供翻译