CF1328F Make k Equal
题目描述
给定一个包含 $n$ 个元素的数组 $a$,以及一个整数 $k$,满足 $k \le n$。
你希望通过操作使数组 $a$ 中至少有 $k$ 个元素相等。每次操作,你可以进行以下两种操作之一:
- 取数组中的一个最小元素,将其值加一(更正式地说,若 $a$ 的最小值为 $mn$,你可以选择一个下标 $i$ 使得 $a_i = mn$,然后令 $a_i := a_i + 1$);
- 取数组中的一个最大元素,将其值减一(更正式地说,若 $a$ 的最大值为 $mx$,你可以选择一个下标 $i$ 使得 $a_i = mx$,然后令 $a_i := a_i - 1$)。
你的任务是计算,至少使数组中有 $k$ 个元素相等所需的最小操作次数。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 2 \cdot 10^5$),分别表示数组 $a$ 的元素个数和要求相等的元素个数。
输入的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),其中 $a_i$ 表示数组 $a$ 的第 $i$ 个元素。
输出格式
输出一个整数,表示至少使数组中有 $k$ 个元素相等所需的最小操作次数。
说明/提示
由 ChatGPT 4.1 翻译