CF645C Enduring Exodus
题目描述
为了躲避 Mischievous Mess Makers 的捣蛋行为,Farmer John 已经离开了他的农场,正前往 Bovinia 的另一端。在旅途中,他和他的 $k$ 头奶牛决定住进豪华的 Grand Moo-dapest 酒店。酒店由 $n$ 个房间排成一行,其中有些房间已经有人入住。
Farmer John 想为自己和他的奶牛预订 $k+1$ 个当前无人入住的房间。他希望让奶牛们尽可能安全,因此他希望最小化自己所在房间与某头奶牛房间之间的最大距离。房间 $i$ 与房间 $j$ 之间的距离定义为 $|j-i|$。请帮助 Farmer John 保护他的奶牛,计算这个最大距离的最小可能值。
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \leq k < n \leq 100000$),分别表示酒店的房间数和随行的奶牛数。
第二行是一个长度为 $n$ 的字符串,描述每个房间的状态。第 $i$ 个字符是 '0' 表示第 $i$ 个房间无人入住,是 '1' 表示该房间已被占用。保证这个字符串中至少有 $k+1$ 个 '0',即一定存在至少一种选法为 Farmer John 和他的奶牛预订 $k+1$ 个房间。
输出格式
请输出 Farmer John 所在房间与最远一头奶牛的房间之间的最小可能距离。
说明/提示
在第一个样例中,Farmer John 可以选择预订第 $3$ 号房间自己住,$1$ 号和 $4$ 号房间给奶牛。此时最远奶牛的距离是 $2$。注意无法将距离变成 $1$,因为没有连续的三个空房间。
在第二个样例中,Farmer John 可以选择 $1$ 号房间自己住,$3$ 号房间给奶牛。他和奶牛之间的距离是 $2$。
在第三个样例中,Farmer John 预订所有三个空房间,自己住在中间那个,这样两头奶牛都紧挨着他,最远奶牛的距离是 $1$。
由 ChatGPT 5 翻译