Ctrl K

Согласованные тройки показаний

Лёгкая
Датчик записал серию показаний readings. Инженер хочет найти тройки замеров, которые хорошо согласуются друг с другом. Тройка индексов i < j < k считается согласованной, если одновременно: - |readings[i] - readings[j]| ≤ limit_ij; - |readings[j] - readings[k]| ≤ limit_jk; - |readings[i] - readings[k]| ≤ limit_ik. Верните количество согласованных троек. Тройки с разными наборами индексов считаются разными, даже если значения в них совпадают.
Пример 1
readings=[5, 2, 4, 9, 3], limit_ij=3, limit_jk=2, limit_ik=2 → 4

Подходят тройки индексов (0, 1, 2) — значения 5, 2, 4, (0, 1, 4) — 5, 2, 3, (0, 2, 4) — 5, 4, 3 и (1, 2, 4) — 2, 4, 3. Любая тройка с 9 нарушает хотя бы одно ограничение.

Пример 2
readings=[7, 7, 7, 7], limit_ij=0, limit_jk=0, limit_ik=0 → 4

Все показания равны, поэтому подходит каждая из C(4, 3) = 4 троек.

Пример 3
readings=[1, 10, 20], limit_ij=5, limit_jk=5, limit_ik=50 → 0

Единственная тройка не подходит: 1 и 10 отличаются на 9, а это больше limit_ij.

Ограничения
  • 3 ≤ readings.length ≤ 100
  • 0 ≤ readings[i] ≤ 1000
  • 0 ≤ limit_ij, limit_jk, limit_ik ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБлок, повторённый подряд ЛёгкаяXOR каждого подмножества ЛёгкаяТри слагаемых и сумма после них ЛёгкаяЧётные числа из карточек с цифрами ЛёгкаяТройки с равным шагом Лёгкая
загружаем Python…
Вход
readings=[5, 2, 4, 9, 3], limit_ij=3, limit_jk=2, limit_ik=2
Ожидается
4

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