#CF2130B. 无路径
无路径
B. 无路径
- 每个测试的时间限制:1 秒
- 内存限制:256 MB
有一个数组 ,其中的值只可能是 、 或 ,还有一个整数 。保证 中至少包含一个 、一个 和一个 。
Alice 希望从下标 出发,每次可以向右或向左移动一步(步长为 ),最终到达下标 。在移动过程中,她会计算她访问过的所有位置上的数值之和,并且希望这个和恰好等于 。
形式化地说,Alice 希望找到一个下标序列 ,满足:
- ,。
- 对所有 有 。
- 对所有 有 (即相邻两步必须移动到相邻的下标)。
- 。
然而,Bob 想要重新排列 ,从而阻止 Alice 达成她的目标。判断是否有可能通过重新排列 ,使得 Alice 无法找到满足条件的序列(即使 Alice 足够聪明)。如果可能,还需要输出重新排列后的数组 。
输入格式
每个测试点包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的第一行包含两个整数 和 (,)。
每个测试用例的第二行包含 个整数 ()。
保证 中至少包含一个 、一个 和一个 。
输出格式
对于每个测试用例,如果可以通过重新排列 使得 Alice 无法找到目标序列,则输出 个整数 —— 这样的一种重新排列。否则输出 。
输入输出样例
样例输入
6
3 2
0 1 2
3 3
0 1 2
3 6
0 1 2
3 4
0 1 2
3 10
0 1 2
5 1000
2 0 1 1 2
样例输出
0 1 2
-1
-1
0 2 1
-1
-1
样例解释
- 第一个测试用例: 的任何一种重新排列都可以阻止 Alice 达成目标。
- 第二个测试用例:无论怎样重新排列 ,Alice 总能找到序列 作为她的目标序列。
- 第三个测试用例:没有任何一种 的重新排列可以阻止 Alice 达成目标。例如,对于 ,Alice 可以找到序列 作为她的目标序列。