Max Min (cửa sổ trượt)
Xem dạng PDFBạn sẽ được cung cấp một danh sách các số nguyên a[] và một số nguyên k duy nhất. Bạn cần chọn ra đúng k phần tử từ mảng a để tạo thành mảng a′ sao cho chỉ số không công bằng của a′ là nhỏ nhất. Chỉ số không công bằng của một mảng được tính như sau:
max(a') - min(a')
Ở đây:
max biểu thị số nguyên lớn nhất trong mảng a'
min biểu thị số nguyên nhỏ nhất trong mảng a'
Ví dụ a = [1,4,7,2], k = 2, chọn bất kỳ hai phần tử là [4, 7] thì chỉ số không công bằng = max([4,7]) - min([4,7]) = 7 - 4 = 3
Dữ liệu đầu vào gồm:
Dòng 1: Số nguyên n - số lượng phần tử của mảng
Dòng 2: Số nguyên k - số lượng phần tử phải chọn
Dòng 3 đến dòng (n + 2): Mỗi dòng chứa một số nguyên a[i] - phần tử của mảng
Dữ liệu đầu ra là: In ra một số nguyên duy nhất là chỉ số không công bằng nhỏ nhất có thể đạt được khi chọn k phần tử
max(a') - min (a')
Trong đó a' là mảng gồm k phần tử được chọn.
Ràng buộc:
2 <= n <= 10^5
2 <= k <= n
0 <= a[i] <= 10^9
Input 01:
10
4
1
2
3
4
10
20
30
40
100
200
Output 01:
3
Input 02:
7
3
10
100
300
200
1000
20
30
Output 02:
20
Bình luận