readings (позиции с нуля). Даны два порога: min_gap и min_jump. Пара позиций p ≤ q подходит, если q - p ≥ min_gap и |readings[q] - readings[p]| ≥ min_jump. При min_gap = 0 позиции могут совпадать.
Найдите подходящую пару с наименьшим возможным q. Партнёра p для этого q выбирайте среди позиций от 0 до q - min_gap так:
- если самое низкое показание среди них подходит, берите его (при равенстве — самую раннюю позицию);
- иначе берите самое высокое (тоже самую раннюю позицию среди равных).
Верните [p, q] или [-1, -1], если подходящей пары нет. Нужно решение быстрее O(n²).readings=[4, 9, 2, 6, 10], min_gap=2, min_jump=5 → [2, 4]
При q = 2 и q = 3 ни одно разрешённое показание не отличается от текущего хотя бы на 5. При q = 4 разрешены p от 0 до 2; самое низкое показание 2 (p = 2), и 10 - 2 = 8 ≥ 5.
readings=[8, 8, 1], min_gap=1, min_jump=6 → [0, 2]
При q = 2 самое низкое из показаний 8, 8 не ниже 1, зато самое высокое (8, первое — p = 0) выше на 7.
readings=[3, 5], min_gap=0, min_jump=0 → [0, 0]
При нулевых порогах подходит уже пара [0, 0].
readings=[4, 9, 2, 6, 10], min_gap=2, min_jump=5
[2, 4]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 126 тестов на сервере, включая скрытые.