#3683. 健身计划(fit)

健身计划(fit)

【题目描述】

Setsuna 想要运动! 于是她安排了 nn 天内的作息,作息用一个 01 字符串 ss 表示,若 sis_i 为 0 则表示这天休息,若 sis_i 为 1 则表示这天要去健身房运动。 但是连续 xx 天的运动会积累 x(x+1)2\frac{x(x+1)}{2} 点疲劳值,也就是说字符串中每段长度为 xx 的极长连续 1 会带来 x(x+1)2\frac{x(x+1)}{2} 点疲劳值。 例如,若她的安排为 11101011,那疲劳值为 $\frac{3(3+1)}{2} + \frac{1(1+1)}{2} + \frac{2(2+1)}{2} = 10$ 点。 现在她可以把任意天运动日改成休息日,问最少需要改几天才能使得疲劳值小于等于 kk。

【输入格式】

从文件 fit.in 中读入数据。 第一行包含两个整数 n,kn, k。 第二行一个长度为 nn 的 01 串 ss。

【输出格式】

输出到文件 fit.out 中。 输出一个整数,表示答案。

【样例 1 输入】

7 4
1110111

【样例 1 输出】

2

【样例 2 输入】

3 1
111

【样例 2 输出】

2

大样例

【数据范围】

  • 对于 15% 的数据,n≤15n \le 15;
  • 对于 40% 的数据,n≤300n \le 300;
  • 对于 60% 的数据,n≤2000n \le 2000;
  • 对于 100% 的数据,1≤n≤1051 \le n \le 10^5,0≤k≤n(n+1)20 \le k \le \frac{n(n+1)}{2}。