(В. Лашин) В обычной муниципальной поликлинике, единственной на весь район, строилась очередь к дежурному терапевту.
Известно, что приём терапевта занимает ровно 12 минут, причём в момент окончания приема может сразу зайти следующий пациент(если прием начался в 8:10, то следующий пациент может начать свой прием в 8:22).
Терапевт заканчивает принимать после 900-й минуты от начала суток и готов задержаться ради последнего посетителя, если тот подошёл до конца рабочего дня (в том числе ровно на 900-й минуте).
Очередь формируется по следующему принципу:
– Обычные пациенты(без дополнительного приоритета) встают в очередь в том порядке, в котором подходят.
– Если подходит пациент, записанный на определённое время, то он получает приоритет перед обычными посетителями и встаёт раньше них, независимо от того, на какое время был записан.
Терапевт принимает его даже если запись была на более позднее время.
Если приходят несколько пациентов по записи, первым на приём идёт тот, чьё время записи наступает раньше.
– Если подходит пациент льготной категории, то он получает абсолютный приоритет и проходит раньше всех — как обычных пациентов, так и записанных.
Если приходят несколько льготников, первым идёт тот, кто пришёл раньше.
– Пациенты ожидают своей очереди до момента, когда терапевт сможет их принять.
Если время приёма врача заканчивается, оставшиеся пациенты уходят домой, попутно выражая недовольство организацией работы поликлиники.
Ваша задача — узнать, в какое максимальное время мог подойти к существующей очереди новый человек без записи и льгот, чтобы точно (не должно быть спорной ситуации, когда либо проходит этот человек, либо другой, пришедший в такое же время) попасть на приём, и сколько человек без записи и какой-либо льготы смогли попасть на приём.
Входные данные
В первой строке входного файла находится натуральное число N (N ≤ 1000) – количество пациентов подошедших сегодня.
Следующие N строк содержат следующие значения: время, когда пациент подошёл к очереди(число от 420 и до 900, означающее кол-во минут прошедших с начала суток), имеет ли пациент льготу(0 - не имеет, 1 - имеет), время к которому записан(число от 420 и до 900, в случае если не был записан или является льготником - 0)
Запишите два натуральных числа: сначала минуту, к которой нужно подойти, чтобы точно попасть на приём, затем — сколько обычных людей, без записи и льгот, смогли попасть к врачу.
Откроем файл с помощью электронной таблицы.
Столбец A — время подхода, столбец B — льгота (0/1), столбец C — время записи (0, если записи нет).
Отсортируем таблицу по столбцу A по возрастанию.
A
B
C
D
2
422
0
578
З
3
422
0
0
О
4
424
0
0
О
5
426
0
0
О
6
426
0
576
З
7
435
0
0
О
8
437
0
0
О
9
440
0
880
З
… и ещё 292 пациентов.
В столбец D введём тип пациента.
В ячейку D2 формула
=ЕСЛИ(B2=1;"Л";ЕСЛИ(C2>0;"З";"О"))
и скопируем до конца списка.
Далее последовательно моделируем очередь: приём длится 12 минут, новый пациент может войти сразу после окончания предыдущего.
Очередность: сначала льготники (Л), затем записанные (З) — по времени записи, затем обычные (О).
В столбцы E и F запишем время начала и окончания приёма для каждого пациента, который успел попасть к врачу до окончания рабочего дня (900 минут).
A
B
C
D
E
F
2
422
0
578
З
422
434
3
426
0
576
З
434
446
4
440
0
880
З
446
458
5
458
1
0
Л
458
470
6
455
0
847
З
470
482
7
480
0
527
З
482
494
8
484
0
602
З
494
506
9
494
0
614
З
506
518
Фрагмент очереди: время начала и окончания приёма.
Подсчитаем обычных пациентов без записи и льгот, которые попали на приём: получим 11 человек.
Чтобы найти последнюю минуту, когда можно подойти без записи и гарантированно попасть на приём, проверяем добавление обычного пациента в конец очереди для каждой минуты от 420 до 900.