roofs[i] — высота крыши дома i (нумерация с нуля). Паркурщик может перепрыгнуть с крыши i на крышу j, только если j правее (i < j) и выше (roofs[i] < roofs[j]). Прыжков можно делать сколько угодно.
В запросе pairs[q] = [a, b] один человек стоит на крыше a, другой — на крыше b. Найдите самую левую крышу, на которой они могут встретиться: каждый либо уже стоит на ней, либо может на неё попасть. Если такой крыши нет, ответ -1.
Верните массив ответов на все запросы в том же порядке.roofs=[3, 7, 2, 5, 9, 4], pairs=[[0, 2], [1, 3], [4, 5], [5, 5]] → [3, 4, -1, 5]
Пара 0 и 2: с крыши 0 (высота 3) нельзя перейти на крышу 2 (высота 2), но крыша 3 высотой 5 выше обеих — ответ 3. Пара 1 и 3: крыша 3 ниже крыши 1, а первая крыша правее, которая выше 7, — это 4. Пара 4 и 5: выше 9 правее нет ничего, ответ -1. Пара 5 и 5: оба уже на одной крыше.
roofs=[1, 2, 3], pairs=[[2, 0], [0, 1]] → [2, 1]
Крыши растут слева направо, поэтому левый всегда может перейти прямо к правому: ответы 2 и 1.
roofs=[6, 6, 6], pairs=[[0, 1]] → [-1]
roofs=[3, 7, 2, 5, 9, 4], pairs=[[0, 2], [1, 3], [4, 5], [5, 5]]
[3, 4, -1, 5]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 114 тестов на сервере, включая скрытые.