设某个数为 x。
对于一个位置,最多做一次操作 1,最多做一次操作 2,并且两种操作可以都做。
先看两种操作各自带来的收益:
给定一个长度为 n 的整数序列 a1,a2,…,an。
你可以对序列中的某些位置做操作。每个位置最多做一次操作 1,最多做一次操作 2(两种都做也可以,顺序任意),也可以完全不操作。 两种操作如下:
你最多可以执行操作 1 共 a 次,最多可以执行操作 2 共 b 次。请你选好如何操作,使最终序列所有元素之和尽可能小,输出这个最小可能的和。
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105)代表数据组数,每组测试数据描述如下:
第一行输入四个整数 n,a,b,k(1≤n≤2×105; 0≤a≤n; 0≤b≤n; 1≤k≤109)。
第二行输入 n 个整数 a1,a2,…,an(1≤ai≤109)。
除此之外,保证单个测试文件中所有测试数据的 n 之和不超过 4×105。
对于每组测试数据,新起一行输出一个整数,表示最小可能的最终元素和(这个数可能为负数)。
输入
3
3 1 1 3
5 1 7
1 1 1 5
9
1 0 1 10
3
输出
6
-1
-7
说明
对于第三组数据: n=1,a=0,b=1,k=10,序列为 {3}。 只能做一次操作 2:3→−7,最终元素和为 −7。