F. Make k Equal
greedy
You are given the array \(a\) consisting of \(n\) elements and the integer \(k \le n\).You want to obtain at least \(k\) equal elements in the array \(a\). In one move, you can make one of the following two operations: Take one of the minimum elements of the array and increase its value by one (more formally, if the minimum value of \(a\) is \(mn\) then you choose such index \(i\) that \(a_i = mn\) and set \(a_i := a_i + 1\)); take one of the maximum elements of the array and decrease its value by one (more formally, if the maximum value of \(a\) is \(mx\) then you choose such index \(i\) that \(a_i = mx\) and set \(a_i := a_i - 1\)). Your task is to calculate the minimum number of moves required to obtain at least \(k\) equal elements in the array.
The first line of the input contains two integers \(n\) and \(k\) (\(1 \le k \le n \le 2 \cdot 10^5\)) — the number of elements in \(a\) and the required number of equal elements.The second line of the input contains \(n\) integers \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)), where \(a_i\) is the \(i\)-th element of \(a\).
Print one integer — the minimum number of moves required to obtain at least \(k\) equal elements in the array.