Ctrl K

Пары треков на целые минуты

Средняя
Вы собираете плейлист для радиоэфира. Длительность каждого трека в секундах записана в массиве durations. В эфир ставят треки парами, и ведущему удобно, когда пара звучит ровно целое число минут. Посчитайте, сколько существует пар треков (i < j), у которых durations[i] + durations[j] делится на 60 без остатка. Перебор всех пар — O(n²); попробуйте за O(n).
Пример 1
durations=[45, 75, 15, 120, 105] → 4

Подходят пары 45+75=120, 45+15=60, 75+105=180 и 15+105=120 — четыре пары. Трек 120 сам по себе кратен минуте, но пары ему не нашлось.

Пример 2
durations=[180, 240, 300, 360] → 6

Все четыре трека длятся целое число минут, поэтому подходит любая из 6 пар.

Пример 3
durations=[7, 11, 13] → 0
Ограничения
  • 1 ≤ len(durations) ≤ 6·10⁴
  • 1 ≤ durations[i] ≤ 500
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБольше трети голосов СредняяСамые частые значения СредняяЗадания с перерывом на остывание СредняяСамые частые запросы СредняяСводка заходов по доменам Средняя
загружаем Python…
Вход
durations=[45, 75, 15, 120, 105]
Ожидается
4

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