Inferno

题目背景

> 我是幽灵。 > 穿过悲惨之城,我落荒而逃。 > 穿过永世凄苦,我远走高飞。 沿着阿尔诺河的堤岸,我夺路狂奔,气喘吁吁……左转上了卡斯特拉尼大街,一直朝北而行,始终隐蔽在乌菲兹美术馆的阴影之下。 但他们还是穷追不舍。 他们的脚步声越来越响,这些追捕者冷酷无情,不达目的绝不善罢甘休。 这么多年来,他们一直尾随着我。他们锲而不舍,是的我只能活在地下……被迫呆在炼狱之中……就像冥府的恶魔,时刻忍受地狱的煎熬。 > 我是幽灵。 如今浮生尘世,我举目北望,却看不到通往救赎的捷径——那高耸的亚平宁山脉挡住了黎明的第一缕阳光。

题目描述

罗伯特 · 兰登在洗下但丁死亡面具上的丙烯石膏后,在背面发现了一行字: > 哦,有着稳固智慧的人啊, > 请注意这里的含义 > 就藏在晦涩的序列面纱之下。 下面有一行由 $1,-1$ 组成的长度为 $n$ 的序列。面具经受了岁月的侵蚀,序列中有一些数已经模糊不清。幸运的是,面具下面有给出两条线索: > 你只得往空缺的位置填 $k$ 个 $1$,其余填入 $-1$,需要最大化这个序列的最大子段和。 > > **一个序列的最大子段和定义为,其在一段连续长度的区间内的最大和。形式化地,一个序列 $a$ 的最大子段和即为 $\max\limits_{l=1}^n\max\limits_{r=l}^n\left(\sum\limits_{i=l}^r a_i\right)$。** 罗伯特 · 兰登希望在瘟疫扩散之前找到有关的线索。于是他找到了你。 - - - #### 【形式化题意】 给定一个只包含 $-1,0,1$ 的序列,求出往 $0$ 的位置上填 $k$ 个 $1$,其余填 $-1$ 后最大子段和的最大值。

输入输出格式

输入格式


第一行两个正整数 $n,k$。 接下来一行 $n$ 个整数 $a_i\in\{-1,0,1\}$,其中 $0$ 表示数字模糊不清。

输出格式


一行一个正整数,表示可能的最大子段和。

输入输出样例

输入样例 #1

5 2
1 0 -1 0 0

输出样例 #1

2

说明

#### 【样例解释】 一种可行的方案是填入 $\{1,1,-1\}$,最大子段和为 $2$。 #### 【数据范围】 **本题开启捆绑测试。** | $\text{SubTask}$ | 分值 | $n,k\le $ | | :----------: | :----------: | :----------: | | $0$ | $4$ | $20$ | | $1$ | $6$ | $200$ | | $2$ | $10$ | $5\times 10^3$ | | $3$ | $30$ | $5\times 10^5$ | | $4$ | $50$ | $10^7$ | 对于 $100\%$ 的数据,$1\le n,k\le10^7$,$a_i\in \{-1,0,1\}$。保证 $k\le$ 序列中 $0$ 的个数。 **本题标程使用优化后的输入输出,在 O2 优化下最大点用时约 $350$ ms,足以通过此题。如果您自认为您的程序复杂度正确,却超出时间限制,请使用更优的输入输出方式,或者优化常数。**