TỔNG XOR (SXOR)
Xem dạng PDF
Gửi bài giải
Điểm:
0,50 (OI)
Giới hạn thời gian:
0.5s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cho dãy số nguyên dương ~A = (a_1, a_2, \ldots, a_n)~, ta gọi tổng XOR của nó là
$$a_1 \text{ XOR } a_2 \text{ XOR } \ldots \text{ XOR } a_n$$
(XOR là phép XOR bit, trong C++ là toán tử ^).
Yêu cầu: Chọn một dãy con của ~A~ sao cho tổng XOR của dãy con này là lớn nhất.
Input
- Dòng đầu tiên chứa số nguyên dương ~n~ ~(n \le 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên dương ~a_1, a_2, \ldots, a_n~ ~(a_i \le 10^{18})~.
Output
- In ra trên một dòng chỉ số của những phần tử được chọn, cách nhau bởi dấu cách.
Sample Input 1
4
1 2 4 5
Sample Output 1
4 2
Sample Input 2
5
14 8 13 6 10
Sample Output 2
1 3 4 5
Notes
- Ví dụ 1: ~a_4 \text{ XOR } a_2 = 5 \text{ XOR } 2 = 7~ là tổng XOR lớn nhất có thể chọn được.
- Ví dụ 2: ~a_1 \text{ XOR } a_3 \text{ XOR } a_4 \text{ XOR } a_5 = 14 \text{ XOR } 13 \text{ XOR } 6 \text{ XOR } 10 = 15~.
Đang tải...