题目描述
Yuki 给了你三个非负整数 a、b 和 c。你可以执行以下操作,最多进行 k=64 次:
- a←a⋅2;
 
- b←⌊2b⌋;
 
- a←a⊕b,其中 ⊕ 指按位异或;
 
- b←b⊕a。
 
请在不超过 k 次操作的情况下使 a=b=c,或报告没有合法方案。可以证明,在题目的约束条件下,若存在合法方案,一定存在不超过 k=64 次的合法方案。
输入格式
本题单个测试点内有多组数据。第一行仅包含一个整数 t (1≤t≤104),表示测试数据组数。每组测试数据的格式如下。
输入的第一行,也是唯一一行,包含三个整数 a、b 和 c (0≤a,b,c<231)。
输出格式
对于每组数据:
- 如果你认为无解,仅需输出一行一个整数 −1;
 
- 否则,请输出两行。第一行包含一个整数 p (0≤p≤k),描述你进行的操作次数;第二行包含 p 个整数,每个整数在 [1,4] 之间,依次表示你进行的操作对应的序号。
 
输入输出样例 #1
输入 #1
4
3 5 6
0 0 1
7 7 7
2 9 4
输出 #1
2
4 1
-1
0
2
1 2
说明/提示
对于第一组数据,初始 a=3,b=5,c=6,进行第一次操作后 a=3,b=6,c=6进行第二次
操作后 a=b=c=6,符合要求。