Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Drzewo binarne
(drzewo-bin)
Limit pamięci: 32 MB
Limit czasu: 1.00 s

Drzewo binarne jakie jest każdy widzi. W naszym zadaniu rozważymy nieskończone, pełne drzewo binarne tzn. takie, w którym każdy węzeł ma dwoje synów. Węzły drzewa będziemy numerowali kolejnymi liczbami naturalnymi idąc kolejnymi poziomami poczynając od korzenia, a na każdym poziomie od lewej do prawej:

Przechodzenie po węzłach takiego drzewa jest łatwe, a przynajmniej powinno być…

Napisz program, który: wczyta zapytania dotyczące ścieżek pomiędzy dwoma węzłami drzewa, dla każdego z nich wyznaczy długość ścieżki prostej między tymi węzłami i wypisze wyniki na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna Q, określająca liczbę zapytań. W kolejnych Q wierszach znajdują się zapytania, po jednym w wierszu. Opis każdego zapytania składa się z dwóch liczb naturalnych Ai oraz Bi, oddzielonych pojedynczym odstępem i określających numery węzłów, dla których należy wyznaczyć ścieżkę.

Wyjście

Twój program powinien wypisać na wyjście Q wierszy. W i-tym z nich powinna się znaleźć liczba całkowita – liczba krawędzi, które należy pokonać, aby przedostać się w drzewie z węzła o numerze Ai do węzła Bi.

Ograniczenia

1 ≤ Q ≤ 100 000, 1 ≤ Ai, Bi ≤ 1018.

Przykład

Wejście Wyjście
3
2 6
6 7
4 1
3
2
2