Min Xor Operator

Xem PDF

Nộp bài


Điểm: 10 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 256M

Tác giả:
Dạng bài

Sau một chuyến trải nghiệm Trại Hè Bình Định đầy ý nghĩa, hôm nay thầy Hùng cùng các bạn lớp chuyên Tin sẽ ôn lại kiến thức các phép toán thao tác bit.

Thầy cho các bạn một dãy số nguyên gồm \(N\) phần tử, thầy Hùng định nghĩa giá trị Martian là giá trị \(a_i \mathbin{\oplus} a_j\) \((1 \le i < j \le N)\). Thao tác \(\mathbin{\oplus}\) nghĩa là phép XOR.

Để tối ưu giá trị Martian, thầy muốn các bạn lớp chuyên Tin phải tìm cặp số có giá trị Martian nhỏ nhất.

Input

  • Dòng đầu tiên chứa số nguyên dương \(T\) \((1 \le T \le 10)\).
  • Dòng thứ hai gồm số nguyên dương \(N\) \((2 \le N \le 2 \times 10^5)\).
  • Dòng thứ ba gồm \(N\) phần tử nguyên dương \(a_1, a_2, ..., a_n (0 \le a_i < 2^{30})\).
  • Đảm bảo rằng tổng của \(N\) trên tất cả các testcase không vượt quá \(2 \times 10^5\).

Output

  • In ra \(T\) dòng, mỗi dòng chứa kết quả bài toán gồm tập giá trị \((i, j, x)\) với \(i, j\) là chỉ số phần tử trong mảng, \(x\) giá trị Martian nhỏ nhất.
  • Nếu có nhiều đáp án, hãy in ra bất kì giải pháp nào.

Sample Input

1
6
8 23 9 11 18 5

Sample Output

1 3 1

Giải thích

  • \(a_1 \mathbin{\oplus} a_3 = 1\)

Ràng buộc

  • \(50\%\) số test tương ứng với \(n \leq 10^3.\)
  • \(50\%\) số test tiếp theo tương ứng với \(n \leq 2 \times 10^5.\)