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

Không có ý kiến tại thời điểm này.