#P17258. [2025年南开中学集训]搬邦

[2025年南开中学集训]搬邦

题目描述

geven 终于把题出完了,于是他开始玩邦邦。

他把 nn 个少女拉出来站成环形,其中第 ii 个少女有能力值 AiA_i。(少女从 00 开始编号,且 00 号少女和 n1n-1 号少女相邻。)少女们有能力值上限 MM,且她们的能力值会随时随地对 MM 取模。

他还有若干星光魔方,他可以消耗一个星光魔方,并选择连续的 kk 个少女,做以下操作之一:

  • kk 个少女的能力值全部 +1+1
  • kk 个少女的能力值全部 1-1

如果你理解了上述内容,你可以知道,若 Ai=0A_i = 0,将它 1-1 会让它变成 M1M-1。同理,若 Ai=M1A_i = M-1,将它 +1+1 会让它变成 00

现在他想让所有少女的能力值均变成 VV,请你告诉他他最少需要的星光魔方数量,或者告诉他这不可能。

输入格式

第一行四个整数 n,M,k,Vn,M,k,V,含义如上。

第二行 nn 个整数,代表 AA 数组。

输出格式

一行一个整数,表示答案。

若无解,输出 -1

样例输入 #1

5 5 3 2
1 3 3 0 4

样例输出 #1

6

样例输入 #2

10 10 5 5
0 5 6 3 5 3 5 1 5 6

样例输出 #2

-1

样例输入 #3

10 10 2 0
0 0 0 0 0 0 1 0 0 0

样例输出 #3

-1

样例输入 #4

10 10 2 0
0 0 0 0 0 0 0 0 0 0

样例输出 #4

0

样例输入输出 #5

见下发文件 ex_bandream5.in/.out,该样例满足子任务1,2,3的限制。

样例输入输出 #6

见下发文件 ex_bandream6.in/.out,该样例满足子任务4的限制。

样例输入输出 #7

见下发文件 ex_bandream7.in/.out,该样例满足子任务5的限制。

数据范围

本题开启子任务评测。

所有测试点均满足 $1\leq n,M\leq 10^6,nM\leq 2\times 10^6,1\leq k < n,0\leq A_i,V < M$ 。

各子任务的约束条件如下:

子任务编号 分值 限制
11 55 k=1k=1
22 n,M10n,M\leq 10
33 1010 M=2M=2
44 2020 n1000,M100n\leq 1000,M\leq 100
55 6060 1n,M106,nM2×106 1\leq n,M\leq 10^6,nM\leq 2\times10^6