题目描述
小Z有一个包含 N+1 个元素的数组。他可以进行无限次操作:每次选择一个下标 i(1≤i≤N+1),如果 Ai≤2⋅AN+1,就可以交换 Ai 和 AN+1 的值。
小Z希望通过若干次操作后,数组前 N 个元素的和尽可能小。请你帮助他找出这个最小可能和。
输入格式
- 第一行包含一个整数 N。
- 第二行包含 N+1 个整数 A1,A2,…,AN,AN+1,表示数组的初始元素。
输出格式
对于每个测试用例,输出一行,包含一个整数,表示前 N 个元素的最小可能和。
输入输出样例
4
5 2 1 2 3
8
样例 #1说明
初始数组为 [5,2,1,2,3]。通过交换第一个元素和最后一个元素(因为 5≤2×3),得到数组 [3,2,1,2,5],前4个元素的和为 3+2+1+2=8,这是最小可能和。
3
3 10 30 1
43
样例 #2说明
初始数组为 [3,10,30,1]。最后一个元素是1,由于没有元素满足小于等于2倍的最后元素(即2),所以无法进行任何交换。前3个元素的和为 3+10+30=43。
4
16 4 8 2 1
15
样例 #3说明
初始时,A=[16,4,8,2,1]。考虑下面的操作序列:
- 选 i=4,合法因为 2≤2⋅1。现在 A=[16,4,8,1,2]。
- 选 i=2,合法因为 4≤2⋅2。现在 A=[16,2,8,1,4]。
- 选 i=3,合法因为 8≤2⋅4。现在 A=[16,2,4,1,8]。
- 选 i=1,合法因为 16≤2⋅8。现在 A=[8,2,4,1,16]。
前 N 个元素的和是15,这是最优解。
数据范围
对于10%的数据,满足n=1
对于另外30%的数据,满足1≤n≤1000
对于100%的数据,满足1≤N≤105,1≤Ai≤1000