#P3729. 「SNOI2022」倍增

「SNOI2022」倍增

题目描述

小 Z 是一个喜欢编程的女孩子。

这天,她在做一道编程题的时候偶然发现了一个神奇的整数 142857142857

142857×2=285714142857 \times 2 = 285714,而 285714285714 的所有数位恰好是 142857142857 的一个排列。

她很好奇,有没有更大的满足这种性质的整数。

她写了一个搜索,发现了一些更大的有趣的数:

26835741×2=5367148226835741 \times 2 = 53671482

0987312654×2=19746253080987312654 \times 2 = 1974625308

\dots

她不满足于解决十进制下这样的问题,于是她想知道,是否在 BB 进制下存在一个 nn 位正整数 xx,满足 2x2x 的所有数位在 BB 进制下是 nn 的所有数位的一个排列。

由于她讨厌数字 00,因此她还要求对于任意 1in1 \leq i \leq nxx2x2xBB 进制下的第 ii 位不能同时为 00

输入格式

输入包含多组数据。

输入的第一行是一个正整数 TT,表示数据组数。

接下来 TT 行,第 ii 行包含两个正整数 nnBB,表示第 ii 组数据。

输出格式

对于每组数据,输出一行。

若本组数据有解,按照从高位到低位的顺序输出 nn 个非负整数,表示你找到的答案在 BB 进制下的值。

否则只需要输出一个数 1-1

3
6 10
3 3
6 7

1 4 2 8 5 7
-1
0 3 5 3 1 6

样例 2

见附加文件中 [double2.in](file:double2.in) 和 [double2.ans](file:double2.ans)。

本组数据满足测试点 3 的限制。

注意此样例的答案文件仅表明了一种可能的合法答案,不表明答案文件恰好对应标准程序的输出。

样例 3

见附加文件中 [double3.in](file:double3.in) 和 [double3.ans](file:double3.ans)。

本组数据满足测试点 17 的限制。

注意此样例的答案文件仅表明了一种可能的合法答案,不表明答案文件恰好对应标准程序的输出。

提示

由于答案可能不唯一,我们下发了校验器 [checker.cpp](file:checker.cpp) 和库文件 [testlib.h](file:testlib.h)。

可以使用以下命令编译 checker.cpp

g++ -o checker checker.cpp -O2 -std=c++11

checker.cpp 编译得到可执行文件 checker 后你可以使用以下方式测试你的答案:

checker <input> <output> <answer>:利用选手目录下的 double*.ans 可以用来检验你的答案在样例测试点 double*.in 的正确性。

checker <input> <output> <output>:会检查你对这组数据的所有有解输出是否符合题目要求。注意以此种方式测试的时候,输出无解总会被报告为合法。

请选手注意多组数据之间的清空问题。

数据范围与提示

对于全部数据,1T1041 \le T \le 10^42B2×1052 \le \sum B \le 2 \times 10^51n2×1051 \le \sum n \le 2 \times 10^5n1n \ge 1B2B \ge 2

具体的数据规模与约定见下表。

测试点编号 nn BB TT 特殊约定
11 8\le 8 8\le 8 10\le 10
22 104\le 10^4
33 2×105\le 2\times 10^5 10\le 10
44 104\le 10^4
55
66 15\le 15 15\le 15 100\le 100
77 40\le 40 40\le 40
88 100\le 100 100\le 100
99 300\le 300 300\le 300
1010 1000\le 1000 1000\le 1000
1111 3000\le 3000 3000\le 3000
1212 15000\le 15000 15000\le 15000
1313 50000\le 50000 50000\le 50000
1414 2×105\le 2\times 10^5 2×105\le 2\times 10^5
1515 200\le 200 200\le 200 104\le 10^4 n100n\ge 100
1616 5000\le 5000 5000\le 5000
1717 2×105\le 2\times 10^5 2×105\le 2\times 10^5
1818 300\le 300 300\le 300 B=3k1B = 3k - 1kk 为正整数
1919 2×105\le 2\times 10^5 2×105\le 2\times 10^5
2020 300\le 300 300\le 300 B=3kB = 3kkk 为正整数
2121 2×105\le 2\times 10^5 2×105\le 2\times 10^5
2222 100\le 100 100\le 100
2323 5000\le 5000 5000\le 5000
2424 2×105\le 2\times 10^5 2×105\le 2\times 10^5
2525