Ctrl K

Партии и упаковки

Средняя
На складе есть партии товара: lots[i] — число единиц в i-й партии. Есть и типы упаковок: упаковка j вмещает packs[j] единиц, а отгружают их блоками по factor упаковок, то есть блок j — это packs[j] · factor единиц. Пара (i, j) подходит, если партию lots[i] можно разложить целиком на блоки типа j без остатка. Верните количество подходящих пар. Пары с разными индексами считаются разными, даже если числа в них совпадают. Массивы бывают длинными — перебор всех пар не уложится во время.
Пример 1
lots=[12, 18, 7], packs=[2, 3, 6], factor=2 → 4

Блоки бывают по 4, 6 и 12 штук. Партию 12 делят блоки 4, 6 и 12, партию 18 — только 6, а 7 не делится ни на один: всего 3 + 1 = 4 пары.

Пример 2
lots=[5, 5], packs=[1, 1], factor=5 → 4

Каждая из двух партий делится на блоки по 5 для каждой из двух упаковок: 2 · 2 = 4 пары.

Пример 3
lots=[9], packs=[2], factor=3 → 0

Блок из 6 штук не делит партию 9.

Ограничения
  • 1 ≤ len(lots), len(packs) ≤ 10⁵
  • 1 ≤ lots[i], packs[j] ≤ 10⁶
  • 1 ≤ factor ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСудоку без конфликтов СредняяРазложить анаграммы по группам СредняяНулевые кресты СредняяДерево по прямому и симметричному обходам СредняяДерево по симметричному и обратному обходам Средняя
загружаем Python…
Вход
lots=[12, 18, 7], packs=[2, 3, 6], factor=2
Ожидается
4

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