완전 이진 트리의 특성을 이해하면 쉽게 풀리는 문제 같다.
두 노드 A,B가 주어졌을 때 두 노드의 가장 가까운 부모노드를 찾는 문제였다.
A,B를 //
연산자(몫)를 사용해서 나누다 보면
A,B가 같아지는 지점이 생긴다 (상위 부모노드에 도달 했다는 뜻)
코드는 아래와 같다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
a, b = map(int, sys.stdin.readline().split())
while True:
if a == b:
print(a * 10)
break
if a > b:
a //= 2
else:
b //= 2