Najpierw wczytuję sobie całe drzewo, dfsem (iteracyjnym!) obliczam sobie dla każdego wierzchołka czasy wejścia/wyjścia. Dalej dla zapytań mam 3 możliwe przypadki:
- wierzchołek docelowy jest wierzchołkiem obecnym - nie robię nic
- wierzchołek docelowy nie znajduje się w poddrzewie obecnego wierzchołka (co można sprawdzić w O(1) porównując czasy wejść/wyjść) - idę do rodzica
- wierzchołek docelowy znajduje się w poddrzewie obecnego wierzchołka - wyszukuję binarnie po dzieciach obecnego wierzchołka w którym poddrzewie jest wierzchołek docelowy
Zdecydowanie najprostsze zadanie
Już z Mistrzostwami było więcej kombinowania.