Submit solution

Points: 120.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

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

Please read the guidelines before commenting.


There are no comments at the moment.