Ctrl K

Остановить дронов

Средняя
К базе летят n дронов. distance[i] — начальное расстояние до базы i-го дрона в километрах, speed[i] — его постоянная скорость в километрах в минуту. У вас есть пушка, которая одним выстрелом сбивает одного дрона. После выстрела ей нужна ровно минута на перезарядку; в момент 0 она уже заряжена. То есть стрелять можно в минуты 0, 1, 2, ... Как только любой дрон долетает до базы, игра проиграна. Если дрон долетает ровно в момент, когда пушка зарядилась, это тоже поражение — выстрелить уже не успеть. Верните наибольшее число дронов, которых можно сбить до поражения, или n, если удаётся сбить всех.
Пример 1
distance=[4, 2, 6], speed=[2, 1, 2] → 3

Дроны долетят за 2, 2 и 3 минуты. Сбиваем один в минуту 0, второй в минуту 1, третий в минуту 2 — все успели раньше, чем кто-то долетел.

Пример 2
distance=[3, 3, 3], speed=[3, 3, 1] → 1

Двое дронов долетают ровно через 1 минуту. Одного сбиваем сразу, а второй прилетает в тот же момент, когда пушка зарядилась, — это поражение. Итого 1.

Пример 3
distance=[10], speed=[100] → 1
Ограничения
  • 1 ≤ n = len(distance) = len(speed) ≤ 10⁵
  • 1 ≤ distance[i], speed[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
distance=[4, 2, 6], speed=[2, 1, 2]
Ожидается
3

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