SỐ TƯƠNG THÍCH

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Đề bài
Hai số nguyên xy được gọi là tương thích nếu x AND y = 0.
Nói cách khác, trong biểu diễn nhị phân của xy, không có vị trí bit nào cả hai cùng bằng 1.

Ví dụ:

  • 90 (1011010₂) và 36 (100100₂) là tương thích vì 1011010₂ & 100100₂ = 0₂.
  • 3 (11₂) và 6 (110₂) không tương thích vì 11₂ & 110₂ = 10₂ ≠ 0.

Bạn được cho một mảng số nguyên a1, a2, …, an.
Với mỗi phần tử trong mảng, hãy xác định:

  • Liệu phần tử đó có ít nhất một phần tử khác trong mảng tương thích với nó hay không?
  • Nếu có, bạn cần tìm và in ra một số bất kỳ trong mảng sao cho thỏa ai & số đó = 0.

Input

  • Dòng đầu chứa số nguyên n (1 ≤ n ≤ 10⁶) — số lượng phần tử trong mảng.
  • Dòng thứ hai chứa n số nguyên a1, a2, …, an (1 ≤ ai ≤ 4·10⁶).
    Các số trong mảng có thể trùng nhau.

Output
In ra n số nguyên ansi.

  • Nếu ai không tương thích với bất kỳ phần tử nào khác trong mảng, in -1.
  • Ngược lại, in ra một số bất kỳ trong mảng sao cho ai & ansi = 0 và ansi xuất hiện trong mảng 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

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.