BAPC22-064.Grinding Gravel
Medium · 4 s · 256 MB
- icpc
- bapc
- 2022
During the renovation of your garden, you decide that you want a gravel path running from the street to your front door. Being a member of the Boulders And Pebbles Community, you want this path to look perfect. You already have a regular grid to put the gravel in, as well as a large container of gravel containing exactly as much as the total capacity of the grid.
There is one problem: the gravel does not yet fit perfectly into the grid. Each grid cell has the same (fixed) capacity and every piece of gravel has a certain weight. You have a grindstone that can be used to split the stones into multiple pieces, but doing so takes time, so you want to do a minimal number of splits such that the gravel can be exactly distributed over the grid.
As an example, consider the first sample case. There are three grid cells of size , which can be filled as follows. Put the stones of weight and in the first cell. Now grind the stone of weight into two pieces of weight and . Then the other two grid cells get filled by weights and respectively.
Giriş formatı
The input consists of:
• One line with two integers and (, ), the number of pieces of gravel and the capacity per grid cell.
• One line with integers ( for all ), the weight of each piece of gravel.
It is guaranteed that is a multiple of .
Çıxış formatı
Output the minimal number of times a stone needs to be split into two, such that all the pieces of gravel can be used to fill all the grid cells perfectly.
Qeyd
Source: Benelux Algorithm Programming Contest 2022 · Author: Daan van Gent, Onno Berrevoets · License: CC BY-SA 4.0 · Original: https://bapc.eu · Statement adapted for AlgoLens and shared under the same license.
Nümunələr
Giriş #1
5 8 2 4 5 6 7
Çıxış #1
1
Giriş #2
2 5 12 13
Çıxış #2
4