완전 이진 트리의 거리


답안 제출

Points: 5
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

노드가 \(2,100,000,000\)개인 완전 이진 트리가 있다. 루트 노드의 번호는 1이며, 노드의 번호는 위에서 아래로, 같은 깊이에서는 왼쪽에서 오른쪽으로 1부터 차례대로 부여된다.

1번부터 7번까지의 노드를 나타내면 다음과 같다.

두 노드 사이의 거리는 한 노드에서 다른 노드로 이동하는 최단 경로에 포함된 간선의 개수이다. 따라서 같은 노드 사이의 거리는 0이다.

예를 들어 3번 노드에서 4번 노드로 이동하는 최단 경로는 \(3 \rightarrow 1 \rightarrow 2 \rightarrow 4\)이므로 거리는 3이다. 4번 노드와 5번 노드 사이의 거리는 2이다.

두 노드 \(a\)와 \(b\)가 주어졌을 때, 두 노드 사이의 거리를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 노드의 번호 \(a\)와 \(b\)가 공백을 사이에 두고 주어진다.

출력

두 노드 사이의 거리를 출력한다.

제한 사항

  • \(1 \le a,b \le 2,100,000,000\)

다음 문자열은 소스 코드에 포함될 수 없다.

  • for
  • while
  • goto

예제 입력 1

3 4

예제 출력 1

3

예제 설명 1

\(3 \rightarrow 1 \rightarrow 2 \rightarrow 4\)의 순서로 세 개의 간선을 따라 이동할 수 있다.

예제 입력 2

4 5

예제 출력 2

2

예제 설명 2

4번 노드에서 부모인 2번 노드로 이동한 뒤 5번 노드로 이동하면 된다.


코멘트

현재 작성된 코멘트가 없습니다.