levels уровнями пронумерованы как в куче: корень — 1, у узла v левый ребёнок 2·v, правый — 2·v + 1. Всего узлов 2^levels − 1.
Дан список запросов shortcuts, каждый — пара узлов [a, b]. Для каждого запроса мысленно проложите между a и b дополнительное ребро-перемычку. В графе появится ровно одна петля (замкнутый путь без повторения рёбер). Узнайте, сколько в ней рёбер, и уберите перемычку перед следующим запросом.
Если a и b уже соединены ребром дерева, петля состоит из двух рёбер: этого ребра и перемычки.
Верните список длин петель в порядке запросов.levels=3, shortcuts=[[6, 7], [4, 3], [1, 5]] → [3, 4, 3]
6 и 7 — дети узла 3: петля 6 → 3 → 7 → 6 из трёх рёбер. Путь от 4 до 3 идёт через 2 и 1 (три ребра), плюс перемычка — 4. От 1 до 5 два ребра (через 2), плюс перемычка — 3.
levels=4, shortcuts=[[9, 4], [15, 8]] → [2, 7]
9 — ребёнок 4, поэтому перемычка дублирует ребро дерева, и петля состоит из двух рёбер. От 15 до 8 путь 15 → 7 → 3 → 1 → 2 → 4 → 8 (шесть рёбер), с перемычкой — 7.
levels=3, shortcuts=[[6, 7], [4, 3], [1, 5]]
[3, 4, 3]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 53 теста на сервере, включая скрытые.