CF1699A.The Third Three Number Problem

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

The Third Three Number Problem

题目描述

给定一个正整数 nn。你的任务是找到任意三个整数 aabbcc0a,b,c1090 \le a, b, c \le 10^9),使得 (ab)+(bc)+(ac)=n(a\oplus b)+(b\oplus c)+(a\oplus c)=n,或者判断不存在这样的整数。

这里 aba \oplus b 表示 aabb 的按位异或。例如,24=62 \oplus 4 = 631=23 \oplus 1 = 2

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。接下来的每一行描述一个测试用例。

每个测试用例仅包含一个整数 nn1n1091 \le n \le 10^9)。

输出格式

对于每个测试用例,输出任意一组满足条件的三个整数 aabbcc0a,b,c1090 \le a, b, c \le 10^9),使得 (ab)+(bc)+(ac)=n(a\oplus b)+(b\oplus c)+(a\oplus c)=n。如果不存在这样的整数,输出 1-1

说明/提示

在第一个测试用例中,a=3a=3b=3b=3c=1c=1,因此 (33)+(31)+(31)=0+2+2=4(3 \oplus 3)+(3 \oplus 1)+(3 \oplus 1)=0+2+2=4

在第二个测试用例中,不存在解。

在第三个测试用例中,(24)+(46)+(26)=6+2+4=12(2 \oplus 4)+(4 \oplus 6)+(2 \oplus 6)=6+2+4=12

由 ChatGPT 4.1 翻译

样例

5
4
1
12
2046
194723326
3 3 1
-1
2 4 6
69 420 666
12345678 87654321 100000000

在线编程 IDE

建议全屏模式获得最佳体验