#P16558. [Bapc2022]grinding gravel
[Bapc2022]grinding gravel
题目背景
你正在翻修花园,希望修建一条从街道通往家门口的碎石小路。地面已经被划分成若干容量相同的网格,容器中的碎石总重量恰好等于所有网格的总容量。
问题在于,现有石块的重量并不一定能直接把每个网格恰好填满。你可以使用磨石机把一块石头分成两块,但每次分割都需要时间,因此希望让分割次数尽可能少。
题目描述
有 块石头,第 块石头的重量为 。每个网格的容量均为 。
你可以进行若干次操作。每次操作选择一块现有石头,将它分成两块,总重量保持不变。分割得到的石块还可以继续分割。
你需要把所有石块完整地分配到若干网格中,使每个网格内石块的总重量都恰好等于 。
求完成分配所需的最少二分次数。
题目保证所有石头的总重量是 的倍数,因此网格数量为
输入格式
第一行包含两个整数 ,分别表示石头数量和每个网格的容量。
第二行包含 个整数 ,表示各块石头的重量。
输出格式
输出一个整数,表示为了恰好填满所有网格,最少需要进行多少次二分。
数据范围
并保证
是 的倍数。
样例 1
输入
5 8
2 4 5 6 7
输出
1
说明
有三个容量为 的网格。可以将重量为 和 的石头放入第一个网格;把重量为 的石头分成重量为 和 的两块;其余两个网格分别放入 和 。因此只需分割一次。
样例 2
输入
2 5
12 13
输出
4