#4988. Problem 1. Sequence Construction

0

Problem 1. Sequence Construction

Problem 1. Sequence Construction

USACO 2025 US Open Contest, Silver

最近,Farmer John 农场上的奶牛们迷上了观看番剧《药屋奶牛的呢喃》。这个节目围绕着一位聪明的奶牛侦探牛牛解决各种问题。Bessie 从番剧中得到了一个新问题,但答案要等到下周播出下一集才会揭晓!请帮助她解决这个问题。

给定整数 MMKK1M1091 \leq M \leq 10 ^ 91K311 \leq K \leq 31)。请选择一个正整数 NN 并构造一个序列 aa,包含 NN 个非负整数,满足以下条件:

  • 1N1001 \le N \le 100
  • a1+a2++aN=Ma_1 + a_2 + \dots + a_N = M
  • $\text{popcount}(a_1) \oplus \text{ popcount}(a_2) \oplus \dots \oplus \text{ popcount}(a_N) = K$

如果不存在这样的序列,输出 1-1

 popcount(x)\dagger \text{ popcount}(x) 是整数 xx 的二进制表示中等于 11 的数位数量。例如,1111 的 popcount 是 331616 的 popcount 是 11

\dagger \oplus 是按位异或运算符。

输入将包含 TT1T51031 \le T \le 5 \cdot 10^3)个独立的测试用例。

输入格式(从终端 / 标准输入读入):

输入的第一行包含 TT

每一个测试用例包含一行,包含 MMKK

输入保证所有测试用例各不相同。

输出格式(输出至终端 / 标准输出):

按以下格式输出 TT 个测试用例的结果:

如果不存在答案,该测试用例输出一行,包含 1-1

否则,该测试用例输出的第一行包含一个整数 NN,表示序列的长度——(1N1001 \le N \le 100)。

该测试用例输出的第二行包含 NN 个空格分隔的整数,满足题目条件——(0aiM0 \le a_i \le M)。

输入样例:


3
2 1
33 5
10 5

输出样例:


2
2 0
3
3 23 7 
-1

在第一个测试用例中,数组 a=[2,0]a = [2, 0] 的元素之和为 22。popcount 的异或和为 10=11 \oplus 0 = 1。因此,所有条件都被满足。

在第二个测试用例中,数组 a=[3,23,7]a = [3, 23, 7] 的元素之和为 3333。popcount 的异或和为 243=52 \oplus 4 \oplus 3 = 5。因此,所有条件都被满足。

其他合法的数组如 a=[4,2,15,5,7]a = [4, 2, 15, 5, 7]a=[1,4,0,27,1]a = [1, 4, 0, 27, 1]

对于第三个测试用例,可以证明不存在合法的数组。

测试点性质: 测试点 2:M8M \leq 8K8K \leq 8。测试点 3-5:M>2KM > 2^K。 测试点 6-18:没有额外限制。

供题:Aakash Gokhale