Chênh lệch nhỏ nhất trong nhóm K

View as PDF

Points: 10 (p) Time limit: 2.0s Memory limit: 256M Input: stdin Output: stdout

Trong một dãy \(n\) số nguyên, có nhiều cách chọn ra một nhóm \(k\) phần tử trong số \(n\) phần tử đó, với \(2 \leq k < n\).

Với mỗi bộ \(k\) phần tử, ta xác định giá trị chênh lệch lớn nhất giữa hai phần tử nào đó (chính là giá trị range trong nhóm này).

Hãy viết chương trình xác định giá trị range nhỏ nhất trong tất cả các nhóm \(k\) phần tử tạo được.

Input Specification

Gồm hai dòng:

  • Dòng thứ nhất chứa hai số nguyên dương \(n\), \(k\);
  • Dòng thứ hai chứa dãy \(n\) số nguyên, hai số liên tiếp ngăn cách nhau bởi một dấu khoảng trắng.

Output Specification

In ra kết quả trên một dòng.

Constraints

  • \(2 \leq k < n \leq 10^4\)
  • Mỗi số nguyên trong dãy có giá trị tuyệt đối không vượt quá \(10^6\).

Input Sample 1

4 2
9 6 7 3

Output Sample 1

1

Explanation for Sample Output 1

Có 6 cách chọn ra một cặp 2 số trong dãy 4 số ban đầu:

- Cách 1: [9, 6]. Range = 3
- Cách 2: [9, 7]. Range = 2
- Cách 3: [9, 3]. Range = 6
- Cách 4: [6, 7]. Range = 1
- Cách 5: [6, 3]. Range = 3
- Cách 6: [7, 3]. Range = 4
Vậy giá trị nhỏ nhất cần tìm là 1.

Input Sample 2

4 3
9 6 7 3

Output Sample 2

3

Explanation for Sample Output 2

Có 4 cách chọn ra một cặp 3 số trong dãy 4 số ban đầu:

- Cách 1: [9, 6, 7]. Range = 3
- Cách 2: [9, 6, 3]. Range = 6
- Cách 3: [9, 7, 3]. Range = 6
- Cách 4: [6, 7, 3]. Range = 4
Vậy giá trị nhỏ nhất cần tìm là 3.

Comments

There are no comments at the moment.