Ctrl K

Заявки по возрастному правилу

Средняя
В соцсети n пользователей, ages[i] — возраст i-го. Каждый пользователь x отправляет заявку в друзья каждому другому пользователю y, для которого выполнены оба условия: - ages[y] ≤ ages[x] — y не старше x; - ages[y] > ages[x] / 2 + 7 — y не слишком молод для x (деление обычное, не целочисленное). Себе заявку никто не шлёт. Заявка от x к y не означает обратную заявку от y к x. Сколько всего заявок будет отправлено?
Пример 1
ages=[30, 30, 15] → 2

Двое тридцатилетних пишут друг другу — 2 заявки. Пятнадцатилетнему не пишет никто: для 30 лет нужно быть старше 30 / 2 + 7 = 22. Сам он никому не пишет — остальные старше.

Пример 2
ages=[40, 25, 34, 14] → 2

40 → 34 (граница 27), 34 → 25 (граница 24). Остальные пары не подходят: 25 и 14 слишком молоды для 40, 14 — для 25 (граница 19,5).

Пример 3
ages=[14, 14] → 0

Для 14 лет граница 14 / 2 + 7 = 14, а получатель должен быть строго старше неё — заявок нет.

Ограничения
  • 1 ≤ len(ages) ≤ 2 · 10⁴
  • 1 ≤ ages[i] ≤ 120
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с суммой меньше порога СредняяТепло в каждый домик СредняяПары с заданной разницей СредняяТройки палочек для треугольника Средняяk ближайших значений Средняя
загружаем Python…
Вход
ages=[30, 30, 15]
Ожидается
2

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