有 n 个编号为 1∼n 的盒子,初始第 i 个盒子里有 ai 个球。
你可以进行以下两种操作:
- 选择一个盒子,取走盒子中一个球。消耗代价为 1。
- 选择 m 个编号连续的盒子,从中取出总计不超过 k 个球。消耗代价为 c。
问取走所有球需要消耗的最小代价。
每个测试点中有 T 组数据。
输入格式
第一行,一个整数,表示 T。
对于每组数据:
第一行,四个整数,表示 n,m,k,c。
第二行,n 个整数,表示 a1…an。
输出格式
对于每组数据:
一行,一个整数,表示答案。
样例数据
input
3 5 2 4 3 2 2 1 2 2 4 2 4 3 2 4 1 1 10 3 5 1 2 2 2 2 1 1 1 10 2 2
output
7 7 6
子任务
对于 100% 的数据,1≤T≤5×105,∑n≤5×105,1≤m≤n,1≤c≤k≤109,1≤ai≤109。
Subtask1(17%):n,ai≤100,∑n≤500。
Subtask2(21%):∑n≤500。
Subtask3(24%):∑n≤5×103。
Subtask4(11%):c=1。
Subtask5(27%): 无特殊限制。