Cặp XOR lớn nhất
Xem dưới dạng PDF
Gửi bài giải
Điểm:
10
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
64M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Nhà phân tích mật mã cần đánh giá độ phân tán dữ liệu của một tập hợp khóa gồm \(N\) số nguyên. Họ muốn chọn ra hai số nguyên phân biệt trong dãy sao cho phép toán bitwise XOR giữa chúng đạt giá trị lớn nhất. Hãy viết chương trình tính toán nhanh giá trị XOR cực đại này.
Định dạng đầu vào
- Dòng đầu chứa số nguyên dương \(N\) (\(2 \le N \le 2000\)).
- Dòng hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) (\(1 \le a_i \le 10^9\)).
Định dạng đầu ra
- Một số nguyên duy nhất là giá trị XOR lớn nhất tìm được giữa hai số bất kỳ trong dãy.
Ví dụ
Input:
4
2 5 10 12
Output:
15
Giải thích
Chọn 2 và 13 (hoặc 2 và 12, XOR(2, 13) = 15). Cụ thể ở ví dụ: XOR(2, 13) ? Dãy chỉ có 2, 5, 10, 12.
- XOR(2, 13) không có trong ví dụ. Tính thử: XOR(2, 12) = 14; XOR(5, 10) = 15. Vậy giá trị lớn nhất là 15.
Ràng buộc
- 40% số điểm ứng với \(N \le 100\).
- 60% số điểm còn lại không có ràng buộc gì thêm.
Nhận xét