Cindy is trying to fill up her row of buckets!
Cindy has a row of buckets, each initially empty. She wants to fill them to different capacities, depending on the bucket sizes. To accomplish this, she will pour a certain amount into each bucket.
On one move, she pours units into bucket , but unfortunately, in her clumsiness, units get poured into the next bucket in line! If she pours into the last bucket, she clumsily spills onto the grass instead.
Cindy wants to fill each bucket to a certain capacity . If a bucket's water total exceeds the given capacity, the excess will be spilled onto the grass.
Cindy wants to fill her buckets as fast as possible. She can pour into each bucket as many times as she wants. She wonders: what is the minimum number of moves she has to make to fill all her buckets?
Constraints
Subtask 1 [2/15]
Subtask 2 [5/15]
Subtask 3 [8/15]
No additional constraints.
Input Specification
The first line will contain , the number of buckets.
The next line will contain integers, the values of .
The next lines will contain and . Note that indicates the amount of water spilled onto the grass, and can be ignored.
Output Specification
Output the minimum number of times Cindy has to pour to fill all the buckets.
Sample Input
4
6 9 3 8
6 5
4 3
1 5
3 10
Sample Output
4
Explanation for Sample Output
After pouring once into the first bucket, the amount of water in each bucket is:
6 5 0 0
After pouring once into the second bucket:
6 9 3 0
After pouring twice into the second-last bucket:
6 9 3 8
Note that overflow in buckets and is discarded.
It can be shown that it is impossible to fill the buckets in 3 moves or less.
Comments
I don't get what it wants us to do, are we supposed to simply output the amount of times the user attempts to fill in the and values till all the buckets are filled? The sample input and output doesn't clarify enough details regarding what were actually trying to do.
I'd think we're supposed to make some algorithm that finds all of and values to fill it up in the shortest amount of time, but the sample run doesn't exactly show that.
The Output Specification explains what you're supposed to output: