#856. 除法相等

除法相等

读写要求

本题采用文件读写,请在提交代码时使用正确的文件名,否则会导致 RE。

输入文件:equalize.in

输出文件:equalize.out

题目描述

给定一个由 nn 个整数组成的数组 aa。在一次操作中,你可以选择任意 aia_i 并将其除以 22 并向下取整(即令 ai:=⌊ai/2⌋a_i:=\lfloor a_i/2\rfloor)。

你可以对任意 aia_i 执行任意次(包括零次)这样的操作。

你的任务是计算使数组中至少出现 kk 个相等元素所需的最少操作次数。

注意经过一些操作后可能出现 ai=0a_i=0,因此答案总是存在的。

输入格式

第一行两个整数 n,kn,k(1≤k≤n≤2×1051\le k\le n\le 2\times 10^5)。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n(1≤ai≤2×1051\le a_i\le 2\times 10^5)。

输出格式

输出一个整数,表示最少操作次数。

5 3
1 2 2 4 5
1
5 3
1 2 3 4 5
2
5 3
1 2 3 3 3
0

数据范围

  • 1≤k≤n≤2×1051\le k\le n\le 2\times 10^5
  • 1≤ai≤2×1051\le a_i\le 2\times 10^5