测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2137. Facer的工厂

编程题 普及/提高-
知识点

题目描述

Facer 是一个工厂里的兼职工人,这回他碰到了一个问题。

有 $N$ 根钢管,每根长度是 $a_i$。

有一个钢管加工器,每秒钟可以加工 $k$ 长度的钢管。

Facer 需要按顺序加工这些钢管。

不过呢,机器的最大等待长度是 $h$,即等待加工(已经塞入机器却还没有加工的钢管)的钢管长度不能超过 $h$(保证 $a_i \le h$)。

Facer 只能在整数秒的时候塞入钢管。

求 Facer 处理完这些钢管最少要多久呢?

输入格式

第一行 $N,H,K$,代表钢管条数,最大等待长度和每秒处理速度。

接下来 $N$ 行,每行一个数,代表钢管的长度。

钢管需要按顺序处理。

输出格式

最短时间

输入输出样例

输入 #1
1 5 3
5
输出 #1
2
输入 #2
5 6 3
5 4 3 2 1
输出 #2
5

说明/提示

样例 1 解释:只有 $1$ 根钢管,加工时间为 $\lfloor 5/3\rfloor = 2$。

样例 2 解释:

第一秒塞入 $5$,等待长度 $5$,机器处理了 $3$,等待长度 $2$。

第二秒塞入 $4$,等待长度 $6$,机器处理了 $3$,等待长度 $3$。

第三秒塞入 $3$,等待长度 $6$,机器处理了 $3$,等待长度 $3$。

第四秒塞入了 $1,2$,等待长度 $6$,机器处理了 $3$,等待长度 $3$。

第五秒无塞入,等待长度 $3$,机器处理了 $3$,处理完毕。

$N \le 100000$,$h,a_i \le 10^9$。
上一题 去做题 下一题