Preparando MOJI

Compatible Numbers

4000ms 262144K

Description:

Two integers x and y are compatible, if the result of their bitwise "AND" equals zero, that is, a & b = 0. For example, numbers 90 (10110102) and 36 (1001002) are compatible, as 10110102 & 1001002 = 02, and numbers 3 (112) and 6 (1102) are not compatible, as 112 & 1102 = 102.

You are given an array of integers a1, a2, ..., an. Your task is to find the following for each array element: is this element compatible with some other element from the given array? If the answer to this question is positive, then you also should find any suitable element.

Input:

The first line contains an integer n (1 ≤ n ≤ 106) — the number of elements in the given array. The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 4·106) — the elements of the given array. The numbers in the array can coincide.

Output:

Print n integers ansi. If ai isn't compatible with any other element of the given array a1, a2, ..., an, then ansi should be equal to -1. Otherwise ansi is any such number, that ai & ansi = 0, and also ansi occurs in the array a1, a2, ..., an.

Sample Input:

2
90 36

Sample Output:

36 90

Sample Input:

4
3 6 3 6

Sample Output:

-1 -1 -1 -1

Sample Input:

5
10 6 9 8 2

Sample Output:

-1 8 2 2 8

Informação

Codeforces

Provedor Codeforces

Código CF165E

Tags

bitmasksbrute forcedfs and similardp

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 08:35:28

Relacionados

Nada ainda