Những Cặp Đôi Khác Thường

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 10 (p) Thời gian: 1.0s Bộ nhớ: 5M Input: bàn phím Output: màn hình

Một chương trình thực tế nổi tiếng tên là Những Cặp Đôi Khác Thường đã được ra mắt trong thành phố. Theo quy tắc của chương trình, những người tham gia được ghép đôi theo một cách lạ lùng: với số lượng người là chẵn, tất cả người tham gia đều phải được ghép thành các cặp. Petya có một mảng gồm \(n\) số nguyên \(a_1, a_2, \dots, a_n\). Biết rằng \(n\) là số chẵn. Petya phải chia những người tham gia (các con số) thành đúng \(\frac{n}{2}\) cặp \((a_{p_1}, a_{q_1}), (a_{p_2}, a_{q_2}), \dots, (a_{p_{\frac{n}{2}}}, a_{q_{\frac{n}{2}}})\). Mỗi chỉ số (vị trí trong mảng) chỉ được nằm trong tối đa một cặp. Đối với một cặp \((x, y)\), độ chênh lệch của nó được định nghĩa là \(|x - y|\). Petya muốn tạo ra các cặp đôi khác thường sao cho độ chênh lệch lớn nhất giữa tất cả các cặp là nhỏ nhất có thể. Hãy xác định giá trị nhỏ nhất có thể của độ chênh lệch lớn nhất này.
Đầu vào:
Mỗi bài kiểm tra bao gồm nhiều bộ test (test cases).Dòng đầu tiên chứa một số nguyên \(t\) — số lượng bộ test.
Mô tả của các bộ test theo sau đó.
Dòng đầu tiên của mỗi bộ test chứa một số chẵn \(n\) — độ dài của mảng \(a\).
Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) — các phần tử của mảng \(a\).
Đầu ra: Với mỗi bộ test, in ra một số duy nhất — độ chênh lệch lớn nhất nhỏ nhất có thể giữa các phần tử trong các cặp.

Input

5
2
1 2
4
10 1 2 9
6
3 8 9 3 3 2
8
5 5 5 5 5 5 5 5
4
-5 -1 2 6

Output

1
1
1
0
4

summary

Trong trường hợp kiểm thử đầu tiên, mảng là: [1,2]. Cặp duy nhất có thể (và do đó tối ưu) là (1,2), hiệu của chúng là |1−2|=1, đáp án là 1.

Trong trường hợp kiểm thử thứ hai, mảng là: [10,1,2,9]. Ta có thể chọn các cặp — (1,2)và (9,10): cả hai hiệu đều bằng 1do đó, hiệu lớn nhất là 1.

Trong trường hợp kiểm thử thứ ba, mảng là: [3,8,9,3,3,2]. Ta có thể chọn các cặp: (2,3), (3,3), (8,9). Hiệu là: 1,0,1 — lớn nhất là 1


Bình luận

Không có bình luận nào.