FastPrepFastPrep
Problem Brief

Minimum Total Packaging Effort

FULLTIMEOA
See Amazon online assessment and hiring insights

Amazon operates multiple fulfillment centers. Each center follows a special packaging rule.

You are given: An integer list packEffort of size m where packEffort[i] is the packaging effort required for the i-th item.

An integer list packageCount of size n where packageCount[i] indicates that at the i-th fulfillment center, if you pay to package at least packageCount[i] items, you get 2 extra items for free. The 2 bonus (free) items must each have a packaging effort less than or equal to the smallest effort among the paid items at that center.

You can use any fulfillment center once or not at all.

Goal:

Return the minimum total packaging effort required to package all m items using any number of fulfillment centers.

Constraints:

  • 1 ≤ n ≤ 10^5
  • 1 ≤ m ≤ 10^5
  • 0 ≤ packEffort[i] ≤ 10^4
  • Each item must be packaged exactly once

A super huge thank you to an incredible friend who so generously shared the valuable source! 🐳

1Example 1

Input
packEffort = [50, 50, 30, 50, 20], packageCount = [2, 3]
Output
120
Explanation
Choose the fulfillment center with packageCount = 2. Pay for 2 items with cost 50 each → min = 50 Take 2 items for free with effort ≤ 50 → pick 30 and 50 Remaining item is 20 → pay for it Total effort: 50 + 50 + 20 = 120

Constraints

Limits and guarantees your solution can rely on.

🥝
public int minTotalPackagingEffort(List<Integer> packEffort, List<Integer> packageCount) {
  // write your code here
}
Input

packEffort

[50, 50, 30, 50, 20]

packageCount

[2, 3]

Output

120

Sign in to submit your solution.