Minimum Time to Exchange Notes at Cashiers
มี Cashier n คน คนที่ i มีคิว k[i] คน คนที่ j ในคิว i มีธนบัตร m[i][j] ใบ การสแกน 1 ใบใช้ 5 วินาที หลังสแกนครบคนหนึ่ง ใช้ 15 วินาทีในการแลกเงิน หาเวลาน้อยที่สุดที่จะได้แลกเงิน (เลือกคิวที่เร็วที่สุด)
การคำนวณ
เวลาของ Cashier i = 15 * k[i] + 5 * Σ m[i][j] เลือกค่าต่ำสุด
โค้ดตัวอย่าง Python
def minTimeToExchange(k, m):
best = float('inf')
for i in range(len(k)):
time = k[i] * 15
for notes in m[i]:
time += notes * 5
best = min(best, time)
return best
k = [12]*6
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