1from collections import deque
2
3position_a, position_b = map(int, input().split())
4
5q = deque()
6visited = [False]*100001
7result = 0
8cnt = 1
9
10q.append((0, position_a))
11while q:
12 time, cur = q.popleft();
13 visited[cur] = True
14
15 if cur == position_b:
16 result = time
17 for i in q:
18 if i == (time, cur):
19 cnt += 1
20 break
21 if cur-1 >= 0 and not visited[cur-1]:
22 q.append((time+1, cur-1))
23 if cur+1 <= 100000 and not visited[cur+1]:
24 q.append((time+1, cur+1))
25 if cur*2 <= 100000 and not visited[cur*2]:
26 q.append((time+1, cur*2))
27
28print (result)
29print (cnt)
- 100000 넘어갔다가 오는 게 빠른 경우가 있다고 생각할 수 있지만
- 넘어가지 않고도 가장 빠른 방법에 도달할 수 있다