Chia Tiền
Xem PDFkhông làm gì mà vẫn có rất nhiều tiền. để tiền của mình trong \(n\) cái lọ, lọ \(i\) có \(a_i\) triệu USD. Quá rảnh rỗi, mỗi ngày sẽ làm đúng 1 lần thao tác sau:
- Chọn một lọ \(i\) mà \(a_i\) là lớn nhất và rút ra một triệu USD (\(a_i = a_i - 1\)).
- sẽ cầm 1 triệu USD đó bỏ vào lọ \(i\) có ít tiền nhất.
Ví dụ, với |2 2 2|, có thể chọn lọ 1, số tiền lúc này còn lại là |1 2 2|. Lọ có ít tiền nhất là lọ 1. sẽ bỏ lại 1 triệu USD này vào lại lọ 1 và nhận được |2 2 2|.
Với |3 1 3|, có thể chọn lọ 3, số tiền lúc này còn lại là |3 1 2|. Lọ có ít tiền nhất là lọ 2. sẽ bỏ 1 triệu USD này vào lọ 2 và nhận được |3 2 2|.
Sau khi làm việc này trong \(k\) ngày, muốn các bạn tính giá trị \(max - min\). Với \(max\) là số tiền nhiều nhất trong 1 lọ (\(a_i\) lớn nhất) và \(min\) là số tiền ít nhất trong 1 lọ (\(a_i\) ít nhất). Dễ dàng nhận thấy với một dãy \(A\) bất kì và số \(k\) cố định, giá trị \(max - min\) luôn chỉ có 1.
Input
- Dòng đầu chứa 2 số nguyên dương \(n\) và \(k\).
- Dòng tiếp theo chứa \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) là số tiền trong lọ \(i\).
Output
- Một số nguyên là \(max - min\).
Example
Test 1
Input
3 1
18 18 18
Output
0
Note
Ở ví dụ 1, dãy số không thay đổi sau khi thực hiện 1 thao tác.
Test 2
Input
3 3
15 16 20
Output
0
Note
Ở ví dụ 2, sau khi thực hiện 1 thao tác, dãy số là |16 16 19|
Sau khi thực hiện 2 thao tác, dãy số là |17 16 18|
Sau khi thực hiện 3 thao tác, dãy số là |17 17 17|
\(max - min\) = 0
Giới hạn
- Trong tất cả các test, \(k \leq 10^9\).
- \(33\%\) test có \(1 \leq n, a_i \leq 100\).
- \(33\%\) test có \(1 \leq n, a_i \leq 1000\).
- \(34\%\) test có \(1 \leq n \leq 300000\), \(a_i \leq 10^9\).
Bình luận