#P15025. [UOI 2020 II Stage] 报复邻居

[UOI 2020 II Stage] 报复邻居

题目描述

哎呀,这些邻居可真能折腾。他们如此憎恨谢别克,给他设下各种陷阱和麻烦。终于,谢别克做了一个梦。这不是普通的梦,在梦里他可以驱逐家里所有的邻居。

谢别克的房子呈环形,被分隔成若干公寓。房子里总共有 nn 套公寓,按顺时针方向编号为 11nn。对于 1in11 \leq i \leq n-1,编号 ii 的公寓的下一套是编号 i+1i+1 的公寓,而编号 nn 的公寓的下一套是编号 11 的公寓。在编号为 ii 的公寓里居住着 aia_i 个邻居。

为了把居民赶出房子,谢别克可以 kk 次向某个公寓投掷青蛙。所有青蛙的 威力 是一个 0044 之间的整数,并且对所有青蛙都相同,为 mm。谢别克不必每次都把青蛙投掷到同一套公寓。当谢别克把青蛙投掷到编号为 ii 的公寓时,此刻正在公寓 ii 里的邻居会永远逃离房子。同时,沿着顺时针方向接下来 mm 套公寓里的邻居会感到害怕,并搬迁到顺时针方向第 m+1m+1 套公寓里。逆时针方向也是如此:逆时针方向前 mm 套公寓里的邻居会感到害怕,并搬迁到逆时针方向第 m+1m+1 套公寓里。

也就是说,如果房子有 77 套公寓,青蛙被投掷到编号 66 的公寓,且 m=1m=1,那么:

  • 66 套公寓里的所有人将永远消失。
  • 77 套公寓里的居民将搬迁到第 11 套公寓。
  • 55 套公寓里的居民将搬迁到第 44 套公寓。

如果 m=0m=0,那么没有人会搬迁,只是第 ii 套公寓里的邻居逃离。

下图展示了 n=8n=8m=2m=2 时的三种情况。第一张图展示了每套公寓中邻居的初始数量。第二张图展示了青蛙飞入第 55 号公寓后的邻居数量。第三张图展示了另一只青蛙飞入第 22 号公寓后的分布情况。房子周围写有公寓编号。黄色高亮表示青蛙飞入的公寓。

:::align{center} :::

当然,谢别克希望尽可能多地赶走邻居。但他还不够聪明,所以请求你帮助他,告诉他通过 kk 次投掷青蛙最多可以赶走多少邻居。

输入格式

第一行包含三个整数 nnkkmm ($0 \leq m \leq 4,\, 2 \cdot m+3 \leq n \leq 2\,000,\, 1 \leq k \leq n$) —— 分别表示房子里的公寓数量、青蛙投掷次数以及青蛙的威力。

第二行包含 nn 个整数 aia_i (0ai10000000 \leq a_i \leq 1\,000\,000) —— 各公寓的居民数量。

第三行包含一个整数 gg (0g100 \leq g \leq 10) —— 测试点所属区块的编号。

输出格式

在一行中输出一个整数 —— 谢别克最多能赶走的邻居数量。

8 2 2
10 10 6 7 15 8 2 1
0
38
5 2 1
2 4 2 1 7
0
13

提示

评分细则

  • (10 分) m=0m = 0
  • (10 分) n11n \leq 11
  • (10 分) m1m \leq 1,且前 mm 套公寓和后 mm 套公寓中无人居住。
  • (10 分) m2m \leq 2,且前 mm 套公寓和后 mm 套公寓中无人居住。
  • (10 分) m1m \leq 1,且所有公寓要么空置,要么存在 m+1lrnmm + 1 \leq l \leq r \leq n - m,使得从 llrr 的公寓段中各住着一位邻居,而其他所有公寓空置。
  • (10 分) m1m \leq 1,且要么满足区块 5 的条件,要么存在 m+1l1r1<l2r2nmm + 1 \leq l_1 \leq r_1 < l_2 \leq r_2 \leq n - m,使得从 l1l_1r1r_1 和从 l2l_2r2r_2 的公寓段中各住着一位邻居,其他所有公寓空置,并且 m+1l2r1m + 1 \leq l_2 - r_1
  • (10 分) m1m \leq 1
  • (10 分) m2m \leq 2
  • (10 分) m3m \leq 3
  • (10 分) 无额外限制。

翻译由 DeepSeek V3 完成