P8223[CCO2021] 德芙的离谱进制 | ||
|
问题描述
德芙正在思考一个关于 \(K\) 进制整数的问题。
普通的 \(K\) 进制可以将整数 \(n\) 表示为 \(\overline{d_{m-1}d_{m-2}\cdots d_1,d_{0}}\) ,且满足
- 每个数位 \(d_i\) 都在 \(\{0,1,\cdots,K-1\}\) 中;
- \(n=d_{m-1}K^{m-1}+d_{m-2}K^{m-2}+\cdots+d_1K^1+d_0K^0\) 。
例如,十进制的 \(15\) 在 \(K=3\) 进制下是 \(\overline{\texttt{1 2 0}}\) ,这是因为 \(15=1\cdot 3^2+2\cdot3^1+0\cdot 3^0\) 。
然而,普通的 \(K\) 进制整数对于德芙来说太简单了,德芙更喜欢离谱的 \(K\) 进制整数。它与普通 \(K\) 进制整数的差别仅仅在于将 \(\{0,1,\cdots,K-1\}\) 换成了 \(\{a_1,a_2,\cdots,a_D\}\) 。
例如,当 \(a=\{-1,0,1\}\) 时,十进制的 \(15\) 在离谱的 \(K=3\) 进制下是 \(\overline{\texttt{1 -1 -1 0}}\) ,这是因为 \(15=1\cdot 3^3+(-1)\cdot3^2+(-1)\cdot 3^1+0\cdot 3^0\) 。
现在有一组固定的 \(a_1,\cdots,a_D\) ,德芙想要将 \(Q\) 个十进制整数 \(n_1,\cdots,n_Q\) 全部转化为离谱的 \(K\) 进制整数,这种问题显然更适合写程序来解决。
输入格式
第一行四个正整数 \(K,Q,D,M\) 。
第二行 \(D\) 个整数 \(a_1,\cdots,a_D\) 。
接下来 \(Q\) 行,每行一个整数 \(n_i\) 。
输出格式
输出 \(Q\) 行,第 \(i\) 行表示 \(n_i\) 转化后的结果,按幂次从高到低的顺序输出每一位,两个位之间用单个空格间隔。当 \(0\in \{a_1,\cdots,a_D\}\) 时,你转化的结果可以包含前导零,但最好不要太多。当 \(n_i=0\) 时,你转化的结果也不能为空。如果有多种方案可以随便输出一种,如果无法转化输出 IMPOSSIBLE
。
样例输入 1
3 3 3 1
-1 0 1
15
8
-5
样例输出 1
1 -1 -1 0
1 0 -1
-1 1 1
样例输入 2
10 1 3 2
0 2 -2
17
样例输出 2
IMPOSSIBLE
提示
所有测试数据:
\(2\leq K\leq 1\;000\;000\)
\(1\leq Q\leq 5\)
\(1\leq D\leq 801\)
\(1\leq M\leq 400\)
\(-M\leq a_i\leq M\)
\(-10^{18} \leq n_i\leq 10^{18}\)
官方数据不太多,全部都放了,你也可以自己 去下载 完整数据包自行评测