Minimal Cost to Increase Package Size
Problem statement
One of the products listed on Amazon Ecommerce is available in n sizes as indicated in the array size. The category manager recognizes that some of the sizes are repetitive and do not provide a good user experience. To make the best use of inventory, the product should be available in distinct sizes.
The size of the i-th product, size[i], can be increased by one unit for an amount given in the cost array, cost[i]. In other words, increasing size[i] by k units costs cost[i] * k.
Given the arrays size and cost for the product, find the minimal total cost required to make all the sizes distinct.
Complete the function minimalCostToIncreasePackageSize in the editor.
minimalCostToIncreasePackageSize has the following parameters:
int size[n]: an array of integers representing the sizesint cost[n]: an array of integers representing the cost to increase each size by one unit
int: the minimal total cost to make all the sizes distinct
Function
minimalCostToIncreasePackageSize(size: int[], cost: int[]) → intExamples
Example 1
size = [2, 3, 2, 2]cost = [2, 4, 5, 1]return = 7Given n = 4, size = [2, 3, 3, 2] and cost = [2, 4, 5, 1]. It costs 7 units to make the sizes distinct. We can also adjust size[1] to 5, which costs cost[1] * (5 - size[1]) = 8, and size[3] to 4, which costs cost[3] * (4 - size[3]) = 2, for a total of 8 + 2 = 10. However, 7 is the minimum cost required to make all sizes distinct.
Constraints
- The arrays
sizeandcosteach containnelements. - Each size
size[i]may only be increased, never decreased. - Each increase changes a size by exactly one unit at a time, and each unit of increase to
size[i]costscost[i]. - The goal is to make all values in
sizepairwise distinct at the minimum possible total cost.