Implement a prototype of a round-robin load-balancing algorithm.
There are n
servers indexed from 1
to n
, and m
requests to be processed. The i
th request arrives at time arrival[i]
and takes burstTime[i]
time to execute. The load balancer assigns the i
th request to the server with the minimum index. A server that is assigned the i
th request is unavailable from arrival[i]
to arrival[i] + burstTime[i]
. At arrival[i] + burstTime[i]
, the server is available to serve a new request.
Given n
, arrival
, and burstTime
for each request, find the index of the server that executes it. If no server is available at the time, the request is dropped, and -1
is reported. If multiple requests arrive at the same time, the one with the smaller index is assigned first.
Function Description
Complete the function getServerIndex
in the editor.
getServerIndex
has the following parameter(s):
int n
: the number of serversint arrival[m]
: the arrival time of requestsint burstTime[m]
: the burst time of requests
Returns
int[m]
: the Index of the servers the requests are assigned to, or -1
if no server is available
Example 1:

Input: n = 3, arrival = [2, 4, 1, 8, 9], burstTime = [7, 9, 2, 4, 5]
Output: [1, 2, 1, 3, 2]
Explanation:Look carefully at the explaination image shown above 👆. Answer is [1, 2, 1, 3, 2].
1 ≤ n ≤ 105
1 ≤ m ≤ 105
1 ≤ arrival[i] ≤ 109
1 ≤ burstTime[i] ≤ 109

input:
output: