Bờm rất thích chơi với những con số. Để thử thách cậu ta, thầy giáo đã giao cho Bờm một bài toán. Thầy đưa cho Bờm N số nguyên. Sau đó thầy sẽ chọn ngẫu nhiên 1 số tự nhiên M. Yêu cầu của thầy rất đơn giản: chia N số nguyên vào M nhóm sao cho tổng chi phí của M nhóm là nhỏ nhất có thể. Chi phí của 1 nhóm được tính bằng chênh lệch giữa phần tử có giá trị lớn nhất và bé nhất trong nhóm đó. Nếu 1 nhóm có 0 hoặc 1 phần tử, chi phí của nhóm đó = 0. Bờm rất giỏi trong việc tính toán, nhưng cậu ta lại không biết gì về lập trình. Bạn hãy giúp Bờm tìm cach phân chia N số vào M nhóm sao cho tổng chi phí là nhỏ nhất có thể.
Dữ liệu:
- Dòng đầu tiên chứa 2 số nguyên N, M ~(0<N, M <= 200)~.</li>
- Dòng thứ 2 chứa N số nguyên ~a_1~, ~a_2~, ..., ~a_N~ tương ứng với N số nguyên thầy giáo đưa cho Bờm. (0<=~a_i~<=~10^9~).
Kết quả: gồm một dòng duy nhất chứa tổng chi phí nhỏ nhất có thể để chia N số vào M nhóm.
Ví dụ:
INPUT
8 3
5 2 3 10 7 2 6 8
OUTPUT
4
Giải thích: Chia thành 3 nhóm (5 7 6 8), (10), và (2 3 2) chi phí từng nhóm tương ứng là 8-5 = 3, 10 – 10 = 0, 3 – 2 = 1 => tổng chi phí là 4.
Comments