#C. 小博钉钉子

    远端评测题 777ms 512MiB

小博钉钉子

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

最近CSP刚结束,小博欢欢喜喜的打算把图灵学生的奖状复印了一下,打算都装订在墙上,于是他在墙上准备了很多坑位。墙上一共有n个钉钉子的位置,有些位置已经被钉上了钉子,但是钉子有两种不同的类型,分为彩色和普通颜色,小博还是更喜欢彩色的钉子,但是彩色的钉子数量是有限制的,在一段区间内普通钉子会降低这一段区间在小博眼里的视觉效果,小博想让某一段区间尽可能的好看。

数学化这个问题,由 1,1,01,-1,0 组成的长度为 nn 的序列。11代表彩色的钉子,1-1代表普通的钉子,00代表这个位置为空缺的。你只得往空缺的位置填 kk11,其余填入 1-1,需要最大化这个序列的最大子段和。

一个序列的最大子段和定义为,其在一段连续长度的区间内的最大和。形式化地,一个序列 aa 的最大子段和即为 $\max\limits_{l=1}^n\max\limits_{r=l}^n\left(\sum\limits_{i=l}^r a_i\right)$。

小博最近被调皮的学生气的头疼,他只得让你来帮助他解决这个问题。


【形式化题意】

给定一个只包含 1,0,1-1,0,1 的序列,求出往 00 的位置上填 kk11,其余填 1-1 后最大子段和的最大值。

输入格式

第一行两个正整数 n,kn,k

接下来一行 nn 个整数 ai{1,0,1}a_i\in\{-1,0,1\},其中 00 表示数字模糊不清。

输出格式

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

5 2
1 0 -1 0 0
2

提示

【样例解释】

一种可行的方案是填入 {1,1,1}\{1,1,-1\},最大子段和为 22

【数据范围】

本题开启捆绑测试。

SubTask\text{SubTask} 分值 n,kn,k\le
00 44 2020
11 66 200200
22 1010 5×1035\times 10^3
33 3030 5×1055\times 10^5
44 5050 10710^7

对于 100%100\% 的数据,1n,k1071\le n,k\le10^7ai{1,0,1}a_i\in \{-1,0,1\}。保证 kk\le 序列中 00 的个数。

本题标程使用优化后的输入输出,在 O2 优化下最大点用时约 350350 ms,足以通过此题。如果您自认为您的程序复杂度正确,却超出时间限制,请使用更优的输入输出方式,或者优化常数。

2023.3.11 青岛市图灵编程杯 初中组 周赛

未参加
状态
已结束
规则
IOI
题目
6
开始于
2023-3-11 18:00
结束于
2023-3-11 21:00
持续时间
3 小时
主持人
参赛人数
20