Ctrl K

Разборчивая очередь у раздачи

Лёгкая
В столовой подносы двух видов: 0 и 1. Подносы лежат стопкой: trays[0] — верхний. Перед раздачей стоит очередь: line[0] — первый, и каждый в ней хочет поднос определённого вида. Подносов ровно столько же, сколько людей. Раздача идёт так: если первый в очереди хочет тот вид, что лежит сверху стопки, он забирает поднос и уходит. Иначе он встаёт в конец очереди. Брать поднос не сверху нельзя. Всё прекращается, когда никто из оставшихся не хочет верхний поднос. Верните, сколько людей останутся без обеда.
Пример 1
line=[0, 1, 1], trays=[1, 0, 1] → 0

Первый хочет 0, а сверху 1 — он уходит в конец: [1, 1, 0]. Теперь первый берёт 1, остаётся [1, 0] и стопка [0, 1]. Первый (1) снова уходит в конец, следующий берёт 0, последний — 1. Голодных нет: 0.

Пример 2
line=[0, 0, 1, 0], trays=[1, 1, 0, 0] → 3

Единственный желающий 1 забирает верхний поднос. Следующий сверху снова 1, а в очереди только трое хотящих 0 — они так и остаются без обеда. Ответ 3.

Ограничения
  • 1 ≤ len(line) == len(trays) ≤ 100
  • line[i] и trays[i] равны 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЖурнал очков викторины ЛёгкаяОчередь в кассу ЛёгкаяСтолкновения роботов на рельсе СредняяПорядок снятия со стека СредняяКолода для фокуса по возрастанию Средняя
загружаем Python…
Вход
line=[0, 1, 1], trays=[1, 0, 1]
Ожидается
0

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 88 тестов на сервере, включая скрытые.