Robot Warehouse Optimization
Learn this problemProblem statement
Zomato is optimizing its automated warehouse layout. The warehouse consists of N bays arranged in a straight line, represented by a 0-indexed integer array packages, where packages[i] denotes the number of food package units stored at bay i.
The robot starts its operation at one of the two ends of the warehouse line (either at bay 0 or at bay N-1). It must choose one starting base station and use it for all operations; it cannot switch its base station halfway through.
To clear the packages, the robot performs sequential delivery trips under the following rules:
- In a single trip, the robot starts at its base station, moves to a targeted bay
i, picks up at most 1 unit of a package from that bay, and returns to the base station. - While traveling to a target bay
i, the robot can also pick up at most 1 unit from any other intermediate bay it passes along the way for free, provided that bay still has packages left. - The travel cost of a single trip is equal to the 1-indexed distance from the robot's chosen base station to the furthest bay
iit visits on that trip.- If the base station is at index
0: Traveling to indexicostsi + 1. - If the base station is at index
N-1: Traveling to indexicostsN - i.
- If the base station is at index
- The handling cost to load and unload a single unit of any package is always 1 unit of cost.
Your task is to return the minimum total cost (Total Travel Cost + Total Handling Cost) required to completely clear all package units from the warehouse.
Function
getMinimumCost(packages: int[]) → longExamples
Example 1
packages = [1, 2, 3]return = 12Handling Cost: Total units = 1 + 2 + 3 = 6.
Strategy A (Base at index 2 - Right End):
- Trip 1: Go to index
0(distance3). Array becomes[0, 1, 2]. Cost =3. - Trip 2: Go to index
1(distance2). Array becomes[0, 0, 1]. Cost =2. - Trip 3: Go to index
2(distance1). Array becomes[0, 0, 0]. Cost =1.
Travel Cost = 3 + 2 + 1 = 6. Total = 6 + 6 = 12.
Strategy B (Base at index 0 - Left End): Requires 3 trips to the furthest element (index 2) costing 3 × 3 = 9. Total = 9 + 6 = 15.
Minimum of both is 12.
Example 2
packages = [7, 4, 7]return = 39Handling Cost: Total units = 7 + 4 + 7 = 18.
Travel Cost: Symmetrical array, so both ends give the same travel cost.
To clear the furthest element with 7 items, the robot must make 7 trips all the way to the other end (distance 3).
Travel Cost = 7 × 3 = 21.
Total Cost = 21 + 18 = 39.
Constraints
1 ≤ N ≤ 10^50 <= packages[i] < 10^9