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 x và y đượ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 x và y, 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