CF830C Bamboo Partition
题目描述
Vladimir 想要对他办公室的隔断进行现代化改造。为了让办公室更加舒适,他决定拆除一面隔断,并在一排中种植若干竹子。他认为,如果这一排中有 $n$ 根竹子,并且从左到右第 $i$ 根竹子的高度是 $a_{i}$ 米,会很不错。
Vladimir 已经在一排中种好了 $n$ 根竹子,每根竹子当前的高度都是 $0$ 米,它们每天都会长高 $1$ 米。为了让这面隔断更好看,Vladimir 可以选择在任意高度(不高于当前竹子的高度)为每根竹子各锯一次,锯完后该竹子会停止生长。
Vladimir 会每隔 $d$ 天检查一次竹子(即种下的第 $d$ 天、$2d$ 天、依此类推),并在这些时刻锯掉已经长到所需高度的竹子。Vladimir 希望他锯掉的所有竹子部分的总长度不超过 $k$ 米。
请问最大可以选择多少 $d$,使得 Vladimir 能够实现自己的目标,并且被锯掉的部分总长度不超过 $k$ 米?
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \leq n \leq 100$,$1 \leq k \leq 10^{11}$),分别表示竹子的数量和被锯掉部分最大允许的总长度(单位:米)。
第二行包含 $n$ 个整数 $a_{1}, a_{2}, \ldots, a_{n}$($1 \leq a_{i} \leq 10^{9}$),分别表示每根竹子的目标高度(单位:米)。
输出格式
输出一个整数,表示 Vladimir 能够选择的最大的 $d$ 值。
说明/提示
在第一个样例中,Vladimir 可以每隔 $3$ 天检查一次竹子。这时他会在第 $3$ 天锯下第一根和第二根竹子,在第 $6$ 天锯下第三根竹子。被锯掉部分的总长度为 $2+0+1=3$ 米。
由 ChatGPT 5 翻译