Riolku's Mock CCC S4 - Clumsy Cindy

View as PDF

Submit solution


Points: 12 (partial)
Time limit: 2.0s
Memory limit: 512M

Author:
Problem type

Cindy is trying to fill up her row of buckets!

Cindy has a row of N 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 ai units into bucket i, but unfortunately, in her clumsiness, bi 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 ci. 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

1N5000

1ai,bi,ci5000

Subtask 1 [2/15]

1N10

1ai,bi,ci2

Subtask 2 [5/15]

1N700

1ai,bi,ci700

Subtask 3 [8/15]

No additional constraints.

Input Specification

The first line will contain N, the number of buckets.

The next line will contain N integers, the values of ci.

The next N lines will contain ai and bi. Note that bN 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

Copy
4
6 9 3 8
6 5
4 3
1 5
3 10

Sample Output

Copy
4

Explanation for Sample Output

After pouring once into the first bucket, the amount of water in each bucket is:

Copy
6 5 0 0

After pouring once into the second bucket:

Copy
6 9 3 0

After pouring twice into the second-last bucket:

Copy
6 9 3 8

Note that overflow in buckets 3 and 4 is discarded.

It can be shown that it is impossible to fill the buckets in 3 moves or less.


Comments


  • 0
    TheGreenLobster  commented on Sept. 19, 2023, 9:54 p.m. edit 2

    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 ai and bi 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 N of ai and bi values to fill it up in the shortest amount of time, but the sample run doesn't exactly show that.


    • 0
      BalintR  commented on Sept. 19, 2023, 10:39 p.m.

      The Output Specification explains what you're supposed to output:

      Output the minimum number of times Cindy has to pour to fill all the buckets.