307258: CF1328F. Make k Equal
Memory Limit:256 MB
Time Limit:2 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Make k Equal
题意翻译
给你一个数组及其长度 $n$, 以及一个值 $k$. 仅通过将 **最小**元素**自增**/**最大**元素**自减** 的方式, 以使得至少有 $k$ 个元素相等, 输出所需的最少步数.题目描述
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.
输入输出样例
输入样例 #1
6 5
1 2 2 4 2 3
输出样例 #1
3
输入样例 #2
7 5
3 3 2 1 1 1 3
输出样例 #2
4