#AT1332. D - Handstand
D - Handstand
D - Handstand
得分:400 积分
题目描述
有 $N$ 个人从左到右站成一行。
给定一个长度为 $N$ 的字符串 $S$,字符串由 0 和 1 组成,并给定一个正整数 $K$。
如果第 $i$ 个字符是 0,第 $i$ 个人站在双脚上;如果第 $i$ 个字符是 1,第 $i$ 个人站在双手上。
你最多可以给出 $K$ 次以下指令(可以为零):
指令:选择满足 $1 \leq l \leq r \leq N$ 的整数 $l$ 和 $r$,然后将第 $l$ 个、第 $l+1$ 个、$...$、第 $r$ 个人反转。也就是说,对于每个 $i = l, l+1, ..., r$,原来站在双脚上的第 $i$ 个人现在站在双手上,原来站在双手上的第 $i$ 个人现在站在双脚上。
在最多进行 $K$ 次指令后,找出可能站在双手上的连续人数的最大可能值。
约束
- $N$ 是一个满足 $1 \leq N \leq 10^5$ 的整数。
- $K$ 是一个满足 $1 \leq K \leq 10^5$ 的整数。
- 字符串 $S$ 的长度是 $N$。
- 字符串 $S$ 的每个字符是 0 或 1。
输入
输入以以下格式从标准输入给出:
输出
打印在最多进行 $K$ 次指令后可能站在双手上的连续人数的最大可能值。
5 1
00010
4
通过以下的指令我们可以使得连续站在双手上的人数最多,结果为 4:
- 给出指令 $l = 1, r = 3$,即将从第一个到第三个人反转。
14 2
11101010110011
8
1 1
1
1
不需要进行任何指令。
相关
在下列比赛中: