Minimum Time for Two Delivery Drones
Learn this problemProblem statement
Amazon operates two delivery drones. Drone 1 must complete delivery1 deliveries, and Drone 2 must complete delivery2 deliveries. Each delivery occupies exactly one numbered hour.
The drones follow these charging rules while they still have deliveries remaining:
- Drone 1 must charge during every numbered hour that is a multiple of
charge1. - Drone 2 must charge during every numbered hour that is a multiple of
charge2. - A drone cannot make a delivery during one of its charging hours.
- Both drones may charge during the same hour.
- At most one drone may make a delivery during any numbered hour.
Following the source's hour numbering, a delivery assigned to hour h finishes at elapsed time h + 1. Therefore, if the last delivery is assigned to hour h, the total required time is h + 1.
Return the minimum total time required for both drones to complete all deliveries.
Function
minimumDeliveryTime(delivery1: long, delivery2: long, charge1: long, charge2: long) → longExamples
Example 1
delivery1 = 3delivery2 = 1charge1 = 2charge2 = 3return = 6Drone 1 delivers during hours 1, 3, and 5, and it charges during hours 2 and 4. Drone 2 delivers during hour 2. Its next charging hour would be 3, but its delivery is already complete.
The last delivery occurs during hour 5, so it finishes at elapsed time 6.
Example 2
delivery1 = 1delivery2 = 1charge1 = 2charge2 = 2return = 4One drone can deliver during hour 1. Both drones must charge during hour 2, so the other drone delivers during hour 3 and finishes at elapsed time 4.
Constraints
1 <= delivery1, delivery2 <= 10^92 <= charge1, charge2 <= 10^9- All calculations and the returned result fit in a signed
64-bitinteger.