Có n quầy thu ngân, quầy i có k[i] người đứng trước. Khách thứ j ở quầy i có m[i][j] tờ tiền. Thu ngân mất 5 giây quét một tờ, sau khi quét xong khách hàng mất 15 giây để giao dịch. Tìm thời gian sớm nhất có thể đổi tiền.
Ví dụ: n=6, k=[12]*6, ma trận m cho trước -> kết quả 585 (quầy 5 nhanh nhất).
Thuật toán giải quyết
- Với mỗi quầy
i:temp = k[i] * 15(thời gian giao dịch).- Cộng thêm
m[i][j] * 5cho từng khách.
- Trả về
min(temp)qua tất cả quầy.
Ví dụ minh họa
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)) # 585
Đầu vào
k=[12]*6, m=[[...],...]
Đầu ra
585