AT_joi2018ho_a.ストーブ (Stove)
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
JOI 君的房间里有一个取暖炉。由于 JOI 君本身不怕冷,所以当他一个人在房间时不需要开取暖炉,但有客人来访时就必须开取暖炉。
这一天,JOI 君将有 N 位客人来访。第 i 位客人(1≤i≤N)会在时刻 Ti 到达,并在时刻 Ti+1 离开。不会有多位客人在同一时刻到达。
JOI 君可以在任意时刻开关取暖炉。但每次开取暖炉都需要消耗一根火柴。JOI 君只有 K 根火柴,因此最多只能开 K 次取暖炉。一天开始时,取暖炉是关闭的。
由于取暖炉开启时会消耗燃料,JOI 君希望合理安排取暖炉的开关时机,使得取暖炉开启的总时间最小。
输入格式
从标准输入读取以下内容。
- 第 1 行包含两个整数 N,K,表示 JOI 君的房间有 N 位客人来访,JOI 君有 K 根火柴。
- 接下来的 N 行中,第 i 行(1≤i≤N)包含一个整数 Ti,表示第 i 位客人在时刻 Ti 到达,并在时刻 Ti+1 离开。
输出格式
输出一个整数,表示取暖炉开启的总时间的最小值。
输入输出样例
输入#1
3 2 1 3 6
输出#1
4
输入#2
3 1 1 2 6
输出#2
6
输入#3
3 3 1 3 6
输出#3
3
输入#4
10 5 1 2 5 6 8 11 13 15 16 20
输出#4
12
说明/提示
任务
给定 JOI 君房间的来客信息和 JOI 君拥有的火柴数量,求取暖炉开启的总时间的最小值。
限制
所有输入数据满足以下条件。
- 1≤N≤100000。
- 1≤K≤N。
- 1≤Ti≤1000000000(1≤i≤N)。
- Ti<Ti+1(1≤i≤N−1)。
子任务
子任务 1 [20 分]
满足以下条件。
- N≤20。
- 1≤Ti≤20(1≤i≤N)。
子任务 2 [30 分]
- N≤5000。
子任务 3 [50 分]
- 无额外限制。
样例解释 1
在本输入样例中,JOI 君的房间有 3 位客人来访。如下安排取暖炉的开关:
- 在第 1 位客人到达的时刻 1 开启取暖炉。
- 在第 2 位客人离开的时刻 4 关闭取暖炉。
- 在第 3 位客人到达的时刻 6 再次开启取暖炉。
- 在第 3 位客人离开的时刻 7 关闭取暖炉。
这样,取暖炉开启的总时间为 (4−1)+(7−6)=4,且开启次数为 2 次。无法使开启总时间小于 4,因此输出 4。
样例解释 2
在本输入样例中,JOI 君只能开启一次取暖炉,因此可以在第 1 位客人到达的时刻 1 开启取暖炉,在第 3 位客人离开的时刻 7 关闭取暖炉。
需要注意的是,可能存在某位客人离开的时刻与下一位客人到达的时刻相同。
样例解释 3
在本输入样例中,JOI 君可以在每位客人到达时开启取暖炉,在每位客人离开时关闭取暖炉。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?