Suppose there are n number of cashiers exchanging the money, at the moment, the i-th cashier had ki number of people in front of him/her. Now, the j-th person in the line to i-th cashier had m[i,j] notes. We have to find how early can one exchange his/her notes. We have to keep in mind that the cashier spent 5 seconds to scan a single note.After completing scanning of every note for the customer, he/she took 15 seconds to exchange the notes.
So, if the input is like Input : n = 6, k = [12, 12, 12, 12, 12, 12]
7 | 8 | 9 | 7 | 9 | 6 | 10 | 9 | 9 | 6 | 7 | 8 |
10 | 7 | 10 | 9 | 8 | 9 | 9 | 9 | 9 | 6 | 5 | 6 |
9 | 8 | 8 | 9 | 8 | 6 | 7 | 9 | 10 | 6 | 6 | 7 |
7 | 6 | 9 | 6 | 6 | 9 | 8 | 9 | 6 | 6 | 8 | 9 |
9 | 8 | 7 | 6 | 5 | 10 | 8 | 10 | 7 | 6 | 6 | 8 |
8 | 7 | 6 | 5 | 7 | 9 | 7 | 9 | 6 | 5 | 5 | 7 |
then the output will be 585, as the cashier needs 5 secs for scanning every note of each customer, so add 5*m[I,j]. Now each cashier takes 15 seconds for every customer, so add 15*k[] to the answer. The minimum time taken after computing the time taken by each cashier will be the answer. So cashier m[5] takes the minimum time 585.
To solve this, we will follow these steps −
n := size of k
minimum := 99999
for i in range 0 to n, do
temp := k[i] * 15
for j in range 0 to k[i], do
temp := temp + m[i, j] * 5
if temp < minimum, then
minimum := temp
return minimum
Example
Let us see the following implementation to get better understanding −
def minTimeToExchange(k, m): n = len(k) minimum = 99999 for i in range(n): temp = k[i] * 15 for j in range(k[i]): temp += m[i][j] * 5 if temp < minimum: minimum = temp return minimum k = [12, 12, 12, 12, 12, 12] m = [ [7,8,9,7,9,6,10,9,9,6,7,8], [10,7,10,9,8,9,9,9,9,6,5,6], [9,8,8,9,8,6,7,9,10,6,6,7], [7,6,9,6,6,9,8,9,6,6,8,9], [9,8,7,6,5,10,8,10,7,6,6,8], [8,7,6,5,7,9,7,9,6,5,5,7]] print(minTimeToExchange(k, m))
Input
[12, 12, 12, 12, 12, 12], [[7,8,9,7,9,6,10,9,9,6,7,8], [10,7,10,9,8,9,9,9,9,6,5,6], [9,8,8,9,8,6,7,9,10,6,6,7], [7,6,9,6,6,9,8,9,6,6,8,9], [9,8,7,6,5,10,8,10,7,6,6,8], [8,7,6,5,7,9,7,9,6,5,5,7]]
Output
585