Вы работаете в большом офисе, которое представляет из себя 9-этажное здание с одним лифтом, вмещающим 4 человека. В ваши обязанности входит управлять этим лифтом.
Сегодня вы опоздали на работу, и у лифта уже выстроились очереди на разных этажах. Про каждого человека известно, на каком этаже он сейчас находится и на какой этаж хочет попасть. Также известен порядок, в котором люди подходили к лифту.
По правилам компании, если сотрудник подошел к лифту раньше другого, то он должен оказаться внутри лифта раньше (даже если они находятся на разных этажах). Выходить сотрудники могут в любом порядке.
У лифта есть две команды:
- Проехать на один этаж вверх/вниз. На перемещение тратится 1 секунда.
- Открыть двери на этаже. После этого все сотрудники, которым нужно выйти на этом этаже выйдут из лифта. После этого сотрудники, находящиеся на этаже, начнут заходить в лифт в порядке очереди, пока это не противоречит правилам и в лифте достаточно места. Люди заходят и выходят последовательно, каждый тратит 1 секунду на вход или выход.
Изначально лифт находится на 1 этаже.
Вам интересно, сколько нужно времени, чтобы доставить всех сотрудников на нужные этажи. Не обязательно возвращать лифт на 1 этаж.