#P13997. CF165E Compatible Numbers

CF165E Compatible Numbers

CF165E Compatible Numbers

题目描述

如果两个整数 xxyy 的按位与运算结果为 00,即 x & y=0x\ \&\ y=0,那么它们是兼容的。例如,90 (10110102)90\ (1011010_2)36 (1001002)36\ (100100_2) 是兼容的,因为 10110102 & 1001002=021011010_2\ \&\ 100100_2=0_2,而 3 (112)3\ (11_2)6 (1102)6\ (110_2) 则不兼容,因为 112 & 1102=10211_2\ \&\ 110_2=10_2

给定一个整数数组 a1,a2,,ana_1,a_2,\ldots,a_n。你需要判断,对于每个数组元素,是否存在数组中的其它元素跟它兼容?如果存在兼容元素,还需要输出一个满足条件的元素。

输入格式

第一行包含一个整数 nn1n1061 \leq n \leq 10^6),表示数组的元素个数。第二行包含 nn 个用空格分隔的整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai41061 \leq a_{i} \leq 4 \cdot 10^6),表示数组元素。数组中的数字可以重复。

输出格式

输出 nn 个整数 ans1 ans2  ansnans_1\ ans_2\ \ldots\ ans_n。如果 aia_i 与数组 a1,a2,,ana_1,a_2,\ldots,a_n 中不存在任何其它元素兼容,则 ansians_i 等于 1-1。否则 ansians_i 是与 aia_i 兼容的任一数组中的元素,即满足 ai & ansi=0a_i\ \&\ ans_i=0,且 ansians_i 出现在数组中。

输入输出样例 #1

输入 #1

2
90 36

输出 #1

36 90

输入输出样例 #2

输入 #2

4
3 6 3 6

输出 #2

-1 -1 -1 -1

输入输出样例 #3

输入 #3

5
10 6 9 8 2

输出 #3

-1 8 2 2 8

说明/提示

由 ChatGPT 5 翻译