#P1199. 最大差值

最大差值

题目描述

给定一个长度为nn非负整数序列a1,a2,...ana_1,a_2,...a_n

你可以对该序列进行最多kk次操作。

每次操作选择两个非0 的元素aia_iaja_j,然后选择一个整数c(0cai)c(0\le c\le a_i),使得aia_i减少cc,aja_j增加cc

请问,在操作全部完成后,序列中的最大值和最小值之差是多少。

例如,如果初始序列为[5,5,5,5][5,5,5,5]k=1k=1,则一种最优方案是将a2a_2减少5,将a4a_4增加5,得到序列[5,0,5,10][5,0,5,10],这样最大值和最小值之差为10。

再例如,如果序列中的所有元素都为0,则无法进行任何操作,所以最大值和最小值之差也为0。

输入描述

第一行两个整数n,k(1k<n105)n,k(1 \le k< n\le 10^5)

第二行nn个整数:a1,a2,...,an(0ai109)a_1,a_2,...,a_n(0\le a_i\le 10^9)

输出描述

一个整数,表示可以得到的最大差值。

样例1

输入

4 1
5 5 5 5

输出

10

样例2

输入

3 2
0 0 0

输出

0