Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python
Cho dãy gồm ~N~ số nguyên ~a_1, a_2, ..., a_N~ ~(3 \le N \le 10^6,\ |a_i| \le 10^6,\ 1 \le i \le N)~. Xóa ~K~ số bất kỳ từ dãy số ~a_1, a_2, ..., a_n~ ~(1 \le K \le 5,\ 1 \le K \le N - 2)~. Sau khi xóa, gọi ~max~ là chênh lệch lớn nhất giữa hai số bất kỳ trong dãy số ~a_1, a_2,..., a_N~.
Yêu cầu
Hãy tìm cách xóa ~K~ số từ dãy số ~a_1, a_2, ..., a_N~, sao cho ~max~ là nhỏ nhất.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng đầu tiên gồm hai số nguyên dương ~N~ và ~K~, cách nhau bằng dấu cách.
- Dòng thứ hai gồm ~N~ số nguyên ~a_1, a_2, ..., a_N~, các số cách nhau bằng dấu cách.
Dữ liệu đầu ra
Gồm một số nguyên là kết quả ~max~ tìm được.
Ràng buộc dữ liệu
- Có 40% số test ứng với ~K \le 2~.
- Có 40% số test ứng với ~2 < K \le 4~.
- Có 20% số test ứng với ~K = 5~.
Ví dụ
Ví dụ 1
INPUT
6 1
1 2 6 8 8 10
OUTPUT
7
Giải thích: Xóa số ~10~, chênh lệch lớn nhất giữa hai số ~1~ và ~8~ trong dãy là ~7~.
Ví dụ 2
INPUT
6 2
1 2 6 8 8 10
OUTPUT
4
Giải thích: Xóa số ~1~ và ~2~, chênh lệch lớn nhất giữa hai số ~6~ và ~10~ trong dãy là ~4~.
Bình luận