Ctrl K

Компании по четыре в кинозале

Средняя
В кинозале rows рядов, пронумерованных от 1, и в каждом ряду 10 мест с номерами от 1 до 10. Проходы идут между местами 3 и 4 и между местами 7 и 8. Список taken содержит уже проданные места: пара [r, s] означает, что в ряду r занято место s. Компания из четырёх человек хочет сидеть рядом: на четырёх соседних местах одного ряда. Места по разные стороны прохода соседними не считаются — с одним исключением: компания может сесть так, чтобы проход делил её ровно пополам, по двое с каждой стороны. Верните, сколько компаний можно рассадить максимум.
Пример 1
rows=2, taken=[[1, 5], [2, 3], [2, 9]] → 2

В ряду 1 занято место 5, поэтому левая половина и середина недоступны, но места 6–9 свободны — одна компания. В ряду 2 заняты 3 и 9, остаются только места 4–7 между проходами — ещё одна. Итого 2.

Пример 2
rows=3, taken=[[2, 1], [2, 10]] → 6

Крайние места 1 и 10 компаниям не мешают: в каждом из трёх рядов садятся по две компании, всего 6.

Пример 3
rows=1, taken=[[1, 4], [1, 7]] → 0

Занятые места 4 и 7 перекрывают все три возможных блока — ни одной компании.

Ограничения
  • 1 ≤ rows ≤ 10⁹
  • 1 ≤ len(taken) ≤ min(10 · rows, 10⁴)
  • taken[i] = [r, s], 1 ≤ r ≤ rows, 1 ≤ s ≤ 10
  • Все пары в taken различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПерекладывание битов ради квадратов СложнаяСамая непохожая пара СредняяВсе неубывающие подпоследовательности СредняяЗадания с перерывом на остывание СредняяСерии подряд идущих чисел Средняя
загружаем Python…
Вход
rows=2, taken=[[1, 5], [2, 3], [2, 9]]
Ожидается
2

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