Problem Β· Greedy

Get Minimum Cost

Learn this problem
● MediumThe D. E. Shaw Group logoThe D. E. Shaw GroupOA

Problem statement

The data analysts of Hackerland want to schedule some long running tasks on remote servers optimally to minimize the cost of running them locally. The analysts have two servers, a paid one and a free one. The free server can be used only if the paid server is occupied.

The task is expected to take time units of time to complete and the cost of processing the task on the paid server is cost. The task can be run on the free server only if some task is already running on the paid server. The cost of the free server is 0 and it can process any task in 1 unit of time.

Find the minimum cost to complete all the tasks if tasks are scheduled optimally.

Function

getMinimumCost(time: int[], cost: int[]) β†’ int

Complete the function getMinimumCost in the editor.

getMinimumCost has the following parameters:

  1. 1. int[] time: an array of integers representing the time units required for each task
  2. 2. int[] cost: an array of integers representing the cost of processing each task on the paid server

Returns

int: the minimum cost to complete all tasks

Examples

Example 1

time = [1, 2, 3, 2]cost = [1, 2, 3, 2]return = 3
Schedule the third task on the paid server for a cost of 3. It occupies the paid server for 3 time units, so the other three tasks can each run for 1 time unit on the free server. The total cost is 3. A lower cost is impossible: paying only for the cost-1 task covers 2 tasks in total, while paying only for either cost-2 task covers at most 3 tasks.

More The D. E. Shaw Group problems

drafts saved locally
public int getMinimumCost(int[] time, int[] cost) {
    // write your code here
}
time[1, 2, 3, 2]
cost[1, 2, 3, 2]
expected3
checking account