CF1748D ConstructOR
题目描述
给定三个整数 $a$、$b$ 和 $d$,你的任务是找到任意一个整数 $x$,使其满足以下所有条件,或者判断不存在这样的整数:
- $0 \le x < 2^{60}$;
- $a|x$ 能被 $d$ 整除;
- $b|x$ 能被 $d$ 整除。
这里 $|$ 表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。
输入格式
每组测试包含多个测试用例。输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例包含一行,包含三个整数 $a$、$b$ 和 $d$($1 \le a,b,d < 2^{30}$)。
输出格式
对于每个测试用例,输出一个整数。如果存在满足条件的整数 $x$,输出 $x$。否则,输出 $-1$。
如果有多个解,你可以输出其中任意一个。
说明/提示
在第一个测试用例中,$x=18$ 是一个可行解,因为 $39|18=55$ 且 $12|18=30$,它们都能被 $d=5$ 整除。
在第二个测试用例中,$x=14$ 是一个可行解,因为 $8|14=6|14=14$,它能被 $d=14$ 整除。
在第三和第四个测试用例中,可以证明不存在解。
由 ChatGPT 4.1 翻译