Cho hai số tự nhiên \(a, b\) được biểu diễn trong hệ thập phân. Ta định nghĩa khoảng cách Hamming giữa hai số \(a, b\) là \(Hamming(a, b)\) bằng số lượng vị trí có chữ số khác nhau khi biểu diễn \(a, b\) trong hệ nhị phân có cùng số lượng chữ số. Lưu ý rằng khi biểu diễn trong hệ nhị phân, số nào có số lượng chữ số ít hơn thì thêm các chữ số \(0\) vào đầu để chúng có độ dài bằng nhau.
Ví dụ: với \(a = 13\), \(b = 25\), khi đó biểu diễn nhị phân của \(a\) là \(1101\) và của \(b\) là \(11001\), biểu diễn nhị phân của số \(a\) ít hơn số \(b\) là \(1\) chữ số, vì vậy thêm \(1\) chữ số \(0\) ở đầu để trở thành \(01101\). Lúc này ta có \(Hamming(13, 25) = 2\) vì có \(1\) ở vị trí \(1\) và vị trí \(3\) khác nhau trong biểu diễn nhị phân của \(13, 25\).
Yêu cầu: Cho \(N\) số tự nhiên \(a_1, a_2, \ldots, a_N\) được biểu diễn trong hệ thập phân. Hãy tính khoảng cách Hamming nhỏ nhất giữa hai số bất kỳ trong dãy số trên.
Input
Dữ liệu vào gồm:
-
Dòng thứ nhất chứa số nguyên dương \(N\) (\(2 \le N \le 2 \cdot 10^4\));
-
Dòng thứ hai chứa \(N\) số \(a_1, a_2, \ldots, a_N\) (\(0 \le a_i \le 10^9\)).
Ràng buộc:
-
Có \(60\%\) số test thỏa mãn \(N = 2\);
-
Có \(20\%\) số test thỏa mãn \(3 \le N \le 10^3\);
-
Có \(20\%\) số test thỏa mãn \(10^3 < N \le 2 \cdot 10^4\).
Output
In ra một số nguyên duy nhất là khoảng cách Hamming nhỏ nhất giữa hai số bất kỳ trong dãy số đã cho.
Example
Input:
3
9 13 25
Output:
1
Note
Ba số \(9 = 01001_2\), \(13 = 01101_2\), \(25 = 11001_2\) (sau khi thêm chữ số \(0\) vào đầu cho cùng độ dài). Ta có \(Hamming(9, 13) = 1\), \(Hamming(9, 25) = 1\), \(Hamming(13, 25) = 2\). Khoảng cách Hamming nhỏ nhất giữa hai số bất kỳ trong dãy là \(1\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.