В отделении банка работают шесть окон для обслуживания клиентов. Каждое окно оказывает услуги определённого вида. Клиент входит в отделение и встаёт в очередь к тому окну, которое оказывает необходимую ему услугу.
Если после
Если момент завершения обслуживания одного или нескольких клиентов совпадает с моментом прихода нового клиента, то можно считать, что новый клиент пришёл после того, как обслуживание ранее пришедшего клиента завершилось и очередь сократилась.
Входные данные.
Первая строка входного файла содержит целое
Определите наибольшее количество клиентов, обслуженных в течение дня в одном окне, и количество клиентов, которые покинут отделение из-за слишком долгого ожидания.
В ответе запишите два целых числа: сначала набольшее количество клиентов, обслуженных в одном окне, затем количество необслуженных клиентов.
Ответ:
Приведем решение на языке Python.
f = open('26.txt')
n = int(f.readline())
a = [list(map(int,s.split())) for s in f]
a.sort()
ne_obslug = 0
free = [0]*10
obslug = [0]*10
for start, time, okno in a:
if start + 40 >= free[okno]:
obslug[okno] += 1
free[okno] = time + max (start, free[okno])
else:
ne_obslug += 1
print(max(obslug), ne_obslug)
Ответ: 115 225.
Приведем решение Юрия Красильникова на языке Python.
a = sorted([tuple(map(int,s.split())) for s in open('26.txt')][1:])
okno,kol = [0]*7,[0]*7
for x in a:
if okno[x[2]] - x[0] <= 40:
okno[x[2]] = max(okno[x[2]], x[0]) + x[1]
kol[x[2]] += 1
else: kol[0] += 1
print(max(kol[1:]), kol[0])

