AT_arc208_c [ARC208C] Mod of XOR

题目描述

给定正整数 $C$ 和 $X$,且 $C, X < 2^{30}$。 请判断是否存在一个正整数 $n$,满足以下所有条件,如果存在,请给出一个这样的 $n$。 - $1 \leq n < 2^{60}$ - $(n \oplus C) \bmod n = X$ 这里 $n \oplus C$ 表示 $n$ 和 $C$ 的按位异或操作。 有 $T$ 组测试数据,需要分别解决。 什么是按位异或?非负整数 $X$ 和 $Y$ 的按位异或 $X \oplus Y$ 定义如下: - $X \oplus Y$ 用二进制表示时,当且仅当 $X$ 和 $Y$ 在对应的 $2^k$ 位($k\geq 0$)有一位为 $1$ 时,该位为 $1$,否则为 $0$。 例如,$3 \oplus 5 = 6$(二进制:$011 \oplus 101 = 110$)。

输入格式

输入通过标准输入给出,格式如下: > $T$ > $\text{case}_1$ > $\text{case}_2$ > $\vdots$ > $\text{case}_T$ 每组测试数据格式为: > $C$ $X$

输出格式

对于每组测试数据,如果不存在满足条件的 $n$,输出 $-1$。 否则,输出满足条件的 $n$。 如果有多个满足条件的 $n$,输出其中任意一个均可。 多组测试结果按顺序换行输出。

说明/提示

### 样例解释 1 考虑第一组测试数据。 $n=7$ 满足所有条件,因为 $(n\oplus C) \bmod n = (7 \oplus 10) \bmod 7 = 13 \bmod 7 = 6 = X$。因此,首行输出 $7$ 是可接受的。 除此之外,输出 $n=12, 18, 19$ 等等也都是可接受的。 ### 数据范围 - $1\leq T\leq 2\times 10^5$ - $1\leq C, X < 2^{30}$ - 所有输入均为整数。 由 ChatGPT 5 翻译