A clever farmer

在一个阳光明媚的冬日早晨,一位农民向城里人Uncle Sam询问去医院的路线,却得到了一个令人啼笑皆非的回答。Uncle Sam建议农民躺在街上就能直达医院,农民则礼貌地请求他演示一下。随后,Uncle Sam又夸耀城市的美丽,农民巧妙回应城市也是建在土地上,让Uncle Sam面红耳赤。这段对话展现了农民的智慧和幽默感。

        Uncle Sam doesn't like farmers. He thinks they're stupid, they just work on the farm. One winter morning, the sun was shining and uncle Sam sat on the stone steps in front of the door. At this moment, a farmer came up to him with a map in hand. Farmer: Excuse me, uncle, how can I get to the hospital? Uncle Sam: you lie in the middle of the street and you'll soon be in the hospital. Farmer: please give me a demonstration.

        Uncle Sam: I think it's your first time to go to town. The city is much more beautiful than your land, isn't it? Farmer: Yes, uncle, but the city is built on the ground. Uncle Sam turned red.

Lately, the cows on Farmer John's farm have been infatuated with watching the show Apothecowry Dairies. The show revolves around a clever bovine sleuth CowCow solving problems of various kinds. Bessie found a new problem from the show, but the solution won't be revealed until the next episode in a week! Please solve the problem for her. You are given integers M and K (1≤M≤109,1≤K≤31) . Please choose a positive integer N and construct a sequence a of N non-negative integers such that the following conditions are satisfied: 1≤N≤100 a1+a2+⋯+aN=M popcount(a1)⊕ popcount(a2)⊕⋯⊕ popcount(aN)=K If no such sequence exists, print −1 . † popcount(x) is the number of bits equal to 1 in the binary representation of the integer x . For instance, the popcount of 11 is 3 and the popcount of 16 is 1 . †⊕ is the bitwise xor operator. The input will consist of T (1≤T≤5⋅103 ) independent test cases. INPUT FORMAT (input arrives from the terminal / stdin): The first line contains T . The first and only line of each test case has M and K . It is guaranteed that all test cases are unique. OUTPUT FORMAT (print output to the terminal / stdout): Output the solutions for T test cases as follows: If no answer exists, the only line for that test case should be −1 . Otherwise, the first line for that test case should be a single integer N , the length of the sequence -- (1≤N≤100 ). The second line for that test case should contain N space-separated integers that satisfy the conditions -- (0≤ai≤M ). SAMPLE INPUT: 3 2 1 33 5 10 5 SAMPLE OUTPUT: 2 2 0 3 3 23 7 -1 In the first test case, the elements in the array a=[2,0] sum to 2 . The xor sum of popcounts is 1⊕0=1 . Thus, all the conditions are satisfied. In the second test case, the elements in the array a=[3,23,7] sum to 33 . The xor sum of the popcounts is 2⊕4⊕3=5 . Thus, all conditions are satisfied. Other valid arrays are a=[4,2,15,5,7] and a=[1,4,0,27,1] . It can be shown that no valid arrays exist for the third test case.
最新发布
03-24
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值