Commit 599d70d 1 parent c92e230 commit 599d70d Copy full SHA for 599d70d
File tree 1 file changed +44
-0
lines changed
1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 그래프 이론, 그래프 탐색, 너비 우선 탐색ㄷ
2
+ # https://www.acmicpc.net/problem/12851
3
+
4
+ if __name__ == "__main__" :
5
+ from collections import deque
6
+ N , K = map (int , input ().split ())
7
+ INF = 0xFFFFFFFF
8
+ SIZE = 100001
9
+
10
+ MAX = min (SIZE , K * 2 )
11
+ dist = [INF ] * 100001
12
+ dist [N ] = 0
13
+ queue = deque ([N ])
14
+ answer = []
15
+ flag = False
16
+
17
+ while queue :
18
+ X = queue .popleft ()
19
+
20
+ if X == K :
21
+ answer .append (dist [X ])
22
+ flag = True
23
+ continue
24
+
25
+ X2 = X * 2
26
+ cost = dist [X ]+ 1
27
+
28
+ if flag is True and answer [0 ] < cost :
29
+ continue
30
+
31
+ if X2 <= MAX and dist [X2 ] >= cost :
32
+ dist [X2 ] = cost
33
+ queue .append (X2 )
34
+
35
+ if X > 0 and dist [X - 1 ] >= cost :
36
+ dist [X - 1 ] = cost
37
+ queue .append (X - 1 )
38
+
39
+ if X <= MAX and dist [X + 1 ] >= cost :
40
+ dist [X + 1 ] = cost
41
+ queue .append (X + 1 )
42
+
43
+ print (answer [0 ])
44
+ print (len (answer ))
You can’t perform that action at this time.
0 commit comments