JOI 2018 - Stove
Xem PDFTrong phòng của JOI-kun có một chiếc lò sưởi. Vì đã quen với trời lạnh, cậu không cần bật lò khi ở trong phòng một mình. Tuy nhiên, khi có khách, cậu phải bật lò sưởi.
Một ngày nọ, có \(N\) vị khách đến thăm JOI-kun. Vị khách thứ \(i\) (\(1\le i\le N\)) đến vào thời điểm \(T_i\) và rời đi vào thời điểm \(T_i+1\). Tại mỗi thời điểm, có nhiều nhất một vị khách ở thăm.
JOI-kun có thể bật hoặc tắt lò sưởi vào bất kỳ thời điểm nào. Mỗi lần bật lò cần dùng một que diêm. Cậu chỉ có \(K\) que diêm, nên có thể bật lò nhiều nhất \(K\) lần. Đầu ngày, lò sưởi đang tắt.
Khi được bật, lò sưởi tiêu thụ nhiên liệu. Vì vậy, JOI-kun muốn chọn các thời điểm bật và tắt sao cho tổng thời gian lò hoạt động nhỏ nhất, đồng thời lò luôn được bật khi có khách.
Cho thời gian ghé thăm của các vị khách và số que diêm, hãy tính tổng thời gian hoạt động nhỏ nhất của lò sưởi.
Dữ liệu vào
Đọc từ đầu vào chuẩn:
- Dòng đầu chứa hai số nguyên \(N,K\), cách nhau bởi dấu cách: số khách và số que diêm.
- Dòng thứ \(i\) trong \(N\) dòng tiếp theo chứa số nguyên \(T_i\), là thời điểm vị khách thứ \(i\) đến. Người đó rời đi vào thời điểm \(T_i+1\).
Dữ liệu ra
Ghi một dòng chứa tổng thời gian hoạt động nhỏ nhất của lò sưởi.
Ràng buộc
- \(1\le N\le100\,000\).
- \(1\le K\le N\).
- \(1\le T_i\le10^9\) với \(1\le i\le N\).
- \(T_i<T_{i+1}\) với \(1\le i<N\).
Phân nhóm
- (20 điểm) \(N\le20\) và \(1\le T_i\le20\) với mọi \(1\le i\le N\).
- (30 điểm) \(N\le5000\).
- (50 điểm) Không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
3 2
1
3
6
Output
4
Giải thích
Có ba vị khách đến thăm. JOI-kun có thể bật và tắt lò như sau:
- Bật lò ở thời điểm \(1\), khi vị khách thứ nhất đến.
- Tắt lò ở thời điểm \(4\), khi vị khách thứ hai rời đi.
- Bật lò ở thời điểm \(6\), khi vị khách thứ ba đến.
- Tắt lò ở thời điểm \(7\), khi vị khách thứ ba rời đi.
Lò luôn bật khi có khách, được bật hai lần và có tổng thời gian hoạt động \((4-1)+(7-6)=4\). Không thể làm tổng thời gian nhỏ hơn \(4\), nên đáp án là \(4\).
Ví dụ 2
Input
3 1
1
2
6
Output
6
Giải thích
JOI-kun chỉ có thể bật lò một lần. Cậu bật lò ở thời điểm \(1\), khi vị khách thứ nhất đến, và tắt lò ở thời điểm \(7\), khi vị khách thứ ba rời đi.
Lưu ý rằng thời điểm một vị khách rời đi có thể trùng với thời điểm vị khách tiếp theo đến.
Ví dụ 3
Input
3 3
1
3
6
Output
3
Giải thích
JOI-kun bật lò mỗi khi một vị khách đến và tắt lò khi người đó rời đi.
Ví dụ 4
Input
10 5
1
2
5
6
8
11
13
15
16
20
Output
12
Nguồn
JOI 2017/2018, vòng chung kết, bài Stove. Đề do Japanese Committee for the International Olympiad in Informatics công bố. Đề gốc tiếng Anh. Bản dịch tiếng Việt theo CC BY-SA 4.0.
Kỳ thi:
- JOI 2017/2018 - Vòng chung kết (2 Tháng 1., 2018)
Bình luận