Problem · Binary Search
Job Execution
Learn this problemProblem statement
There are jobs that can be executed in parallel on a processor, where the execution time of the j^th job is executionTime[j]. To speed up execution, the following strategy is used.
In one operation, a job is chosen, the major job, and is executed for x seconds. All other jobs are executed for y seconds where y < x.
A job is complete when it has been executed for at least executionTime[j] seconds, then it exits the pool. Find the minimum number of operations in which the processor can completely execute all the jobs if run optimally.
Function
AdobeGetMinimumOperations(executionTime: int[], x: int, y: int) → int
Complete the function getMinimumOperations in the editor.
getMinimumOperations has the following parameters:
int executionTime[n]: the execution times of each jobint x: the time for which the major job is executedint y: the time for which all other jobs are executed
Examples
Example 1
executionTime = [3, 4, 1, 7, 6]x = 4y = 2return = 3The following strategy is optimal using 1-based indexing.
Choose job 4 as the major job and reduce the execution times of job 4 by
Choose job 4,
Choose job 5,
It takes 3 operations to execute all the jobs so the answer is 3.
x = 4 and of other jobs by y = 2. Now executionTime = [1, 2, -1, 3, 4]. Job 3 is complete, so it is removed.executionTime = [-1, 0, -, 1, 2]. So, jobs 1, 2, and 4 are now complete.executionTime = [-, -, -, -, 2]. Job 5 is complete.Constraints
Unknown for now