diff --git a/09/09.py b/09/09.py new file mode 100644 index 0000000..3c98a2b --- /dev/null +++ b/09/09.py @@ -0,0 +1,57 @@ +from math import dist + +with open('input') as file: + cmds = file.read().strip().split('\n') + +d = { + 'R': (0, 1), + 'L': (0, -1), + 'U': (1, 0), + 'D': (-1, 0), +} + +def walk(cmds): + for cmd in cmds: + cmd, v = cmd.split() + v = int(v) + cmd = d[cmd] + for _ in range(v): + yield cmd + +def sign(x): + if x==0: + return 0 + return x//abs(x) + +visited = {(0,0)} +head = (0,0) +tail = (0,0) +for i, j in walk(cmds): + hi, hj = head + hi += i + hj += j + head = hi, hj + if dist(head, tail)>2**0.5: + ti, tj = tail + tj += sign(hj-tj) + ti += sign(hi-ti) + tail = ti, tj + visited.add(tail) +print(len(visited)) + +rope = [(0,0)]*10 +visited = {(0,0)} +for i, j in walk(cmds): + hi, hj = rope[0] + hi += i + hj += j + rope[0] = hi, hj + for i, (head, tail) in enumerate(zip(rope, rope[1:]), 1): + if dist(head, tail)>2**0.5: + hi, hj = head + ti, tj = tail + tj += sign(hj-tj) + ti += sign(hi-ti) + rope[i] = ti, tj + visited.add(rope[-1]) +print(len(visited)) diff --git a/09/input b/09/input new file mode 100644 index 0000000..a7eb5cd --- /dev/null +++ b/09/input @@ -0,0 +1,2000 @@ +L 1 +D 2 +R 2 +L 1 +D 1 +L 1 +U 1 +R 1 +L 2 +R 2 +L 2 +D 1 +R 2 +D 1 +U 2 +R 2 +D 1 +R 1 +L 2 +R 1 +D 1 +U 2 +R 2 +D 1 +R 2 +L 1 +D 1 +U 1 +R 1 +D 2 +L 1 +D 1 +L 1 +U 1 +L 2 +U 1 +L 1 +U 1 +L 1 +D 2 +R 2 +U 1 +D 2 +R 1 +U 1 +D 1 +R 1 +U 2 +L 2 +D 2 +R 1 +U 2 +L 2 +U 1 +D 1 +L 1 +R 2 +L 2 +R 1 +D 2 +L 1 +D 2 +L 1 +R 2 +U 2 +D 2 +U 1 +R 2 +D 2 +L 2 +U 1 +D 2 +R 1 +L 2 +R 1 +L 2 +U 2 +D 2 +U 2 +D 2 +R 1 +U 2 +L 2 +D 1 +U 2 +L 1 +D 1 +R 2 +U 1 +L 1 +D 1 +U 2 +D 2 +R 2 +U 1 +L 2 +D 2 +L 1 +D 2 +L 1 +U 1 +R 2 +L 2 +D 1 +R 2 +U 2 +R 2 +L 2 +D 1 +R 1 +L 1 +D 2 +U 2 +L 1 +D 1 +R 1 +L 3 +U 2 +R 2 +D 3 +L 1 +R 3 +L 1 +R 2 +D 1 +U 3 +L 1 +U 2 +L 1 +D 3 +R 3 +D 1 +U 3 +R 2 +D 2 +R 2 +L 1 +U 1 +R 1 +U 2 +R 3 +U 1 +D 1 +U 1 +R 3 +D 2 +R 2 +U 3 +D 1 +R 3 +L 3 +U 3 +D 3 +R 1 +D 3 +L 1 +D 3 +L 1 +R 1 +U 1 +L 2 +D 3 +U 3 +D 2 +U 3 +D 2 +U 2 +D 1 +R 2 +U 3 +L 1 +R 2 +L 3 +U 3 +D 3 +L 2 +R 2 +U 3 +R 1 +L 1 +U 1 +D 1 +R 2 +L 3 +U 3 +D 1 +L 1 +U 1 +R 1 +D 2 +L 2 +D 2 +R 3 +D 2 +R 3 +D 2 +R 1 +D 1 +R 3 +D 1 +U 1 +L 1 +R 2 +D 3 +L 3 +R 1 +L 2 +R 1 +U 3 +D 2 +R 1 +U 1 +L 2 +R 2 +L 2 +D 1 +U 3 +R 3 +D 2 +R 1 +U 2 +L 3 +R 1 +D 1 +U 2 +L 4 +D 2 +R 1 +U 4 +R 4 +D 3 +R 3 +U 2 +L 2 +U 1 +D 3 +U 2 +D 2 +R 4 +D 3 +R 3 +D 4 +R 2 +U 2 +L 1 +D 1 +L 2 +U 4 +D 4 +R 3 +U 2 +R 3 +U 4 +D 2 +R 3 +D 4 +L 3 +D 1 +R 4 +D 4 +R 4 +L 3 +U 1 +L 1 +D 4 +L 3 +D 1 +U 2 +R 4 +U 1 +L 4 +D 3 +U 2 +R 4 +D 3 +U 3 +L 4 +U 2 +R 1 +U 1 +D 3 +R 3 +D 1 +U 1 +L 3 +R 1 +D 2 +R 4 +U 2 +D 4 +U 4 +L 4 +R 4 +D 2 +R 3 +D 3 +R 4 +U 1 +D 3 +R 4 +L 1 +U 1 +L 1 +D 4 +R 1 +U 4 +L 3 +R 2 +U 4 +R 3 +U 1 +L 3 +D 2 +L 2 +R 3 +D 1 +L 4 +D 2 +R 3 +L 4 +R 4 +L 2 +U 1 +D 1 +R 3 +U 4 +D 4 +U 4 +D 4 +R 4 +U 4 +D 1 +U 1 +D 4 +U 1 +D 4 +U 4 +R 4 +D 4 +L 4 +D 1 +U 5 +R 5 +U 5 +L 1 +R 4 +U 5 +L 2 +U 4 +D 1 +R 1 +L 4 +D 2 +L 5 +D 5 +R 3 +L 2 +R 1 +U 1 +R 5 +D 2 +U 1 +L 1 +D 4 +U 4 +L 2 +U 4 +L 1 +D 4 +L 1 +U 4 +L 3 +U 3 +D 2 +L 3 +D 2 +L 3 +R 1 +L 2 +U 1 +L 2 +R 2 +D 5 +U 4 +R 1 +D 5 +U 2 +R 3 +U 4 +L 4 +R 5 +L 2 +R 5 +U 5 +D 3 +R 2 +D 1 +R 2 +U 4 +D 1 +R 4 +D 5 +R 4 +L 4 +U 5 +D 1 +L 2 +R 1 +U 3 +L 5 +R 5 +L 2 +D 3 +L 2 +R 3 +U 2 +D 2 +U 3 +L 5 +U 3 +D 1 +R 1 +D 3 +L 2 +U 1 +D 2 +U 4 +L 4 +U 5 +R 5 +U 5 +L 5 +R 3 +L 1 +D 1 +L 3 +D 4 +R 1 +D 1 +R 3 +L 4 +U 4 +L 1 +R 5 +D 4 +U 2 +D 6 +U 6 +L 6 +U 2 +L 2 +D 6 +U 2 +R 2 +U 1 +R 6 +D 6 +R 5 +L 4 +R 3 +D 4 +L 6 +U 1 +D 2 +L 5 +U 2 +D 1 +U 6 +R 4 +L 4 +U 3 +L 3 +U 6 +L 4 +R 4 +L 5 +U 2 +L 1 +U 1 +D 5 +U 4 +D 5 +L 5 +U 3 +R 6 +U 5 +D 6 +R 3 +D 1 +L 3 +R 5 +U 5 +R 4 +D 3 +U 1 +D 1 +R 1 +D 1 +L 6 +U 2 +D 4 +U 6 +D 4 +L 6 +D 4 +R 6 +U 4 +R 2 +D 2 +U 1 +L 2 +U 5 +D 4 +L 2 +D 1 +L 3 +R 1 +L 1 +R 6 +L 3 +U 5 +D 3 +R 5 +U 1 +D 5 +R 4 +D 2 +U 6 +R 1 +U 3 +D 2 +R 1 +U 6 +R 2 +U 5 +R 4 +D 6 +U 1 +R 2 +D 6 +U 5 +R 1 +D 6 +U 2 +L 3 +U 3 +D 1 +R 4 +D 1 +L 3 +R 4 +U 2 +R 6 +L 3 +R 6 +U 6 +D 1 +R 4 +D 2 +U 6 +D 3 +R 2 +L 1 +D 5 +L 6 +R 4 +D 3 +R 2 +U 2 +R 4 +D 1 +U 2 +L 6 +D 3 +L 3 +D 6 +L 4 +U 6 +D 2 +R 3 +D 7 +L 7 +R 4 +D 2 +L 1 +R 7 +L 7 +U 7 +D 3 +R 2 +L 4 +D 1 +L 2 +U 6 +D 6 +R 5 +L 5 +U 3 +L 5 +R 2 +L 5 +U 3 +D 6 +L 1 +D 3 +L 7 +U 1 +R 7 +D 1 +R 2 +U 5 +L 3 +D 2 +L 2 +R 2 +U 2 +R 1 +L 5 +U 2 +D 2 +U 1 +R 4 +D 4 +L 6 +D 3 +U 4 +L 3 +D 3 +U 2 +L 4 +D 2 +R 3 +L 6 +R 3 +D 6 +U 1 +R 3 +U 7 +D 5 +L 1 +R 7 +L 5 +R 1 +D 7 +U 4 +L 3 +R 4 +D 1 +L 5 +D 3 +R 6 +U 5 +L 5 +R 5 +D 5 +U 7 +R 1 +D 1 +U 5 +D 3 +R 2 +U 6 +D 5 +U 3 +L 3 +R 4 +L 8 +U 2 +R 1 +U 4 +R 5 +L 6 +U 4 +R 3 +D 2 +U 7 +R 7 +D 1 +U 1 +L 3 +R 4 +U 6 +L 8 +D 4 +R 5 +D 6 +L 1 +R 8 +U 2 +L 7 +U 5 +R 4 +U 1 +D 1 +R 8 +L 6 +D 6 +R 1 +D 1 +U 2 +R 1 +L 6 +R 5 +U 1 +D 1 +L 2 +U 7 +R 4 +D 6 +L 3 +D 7 +U 1 +R 7 +D 1 +R 6 +L 2 +D 4 +L 3 +R 7 +L 7 +U 8 +R 7 +L 5 +D 8 +R 1 +D 4 +L 3 +R 7 +L 4 +U 7 +L 3 +D 7 +L 4 +R 8 +L 5 +D 2 +R 3 +U 6 +D 1 +L 7 +D 1 +U 2 +D 8 +U 7 +R 1 +U 8 +L 4 +U 4 +D 5 +R 2 +D 7 +R 5 +L 4 +D 4 +U 4 +D 5 +U 2 +D 5 +R 8 +D 7 +U 2 +D 7 +R 3 +U 6 +L 6 +D 5 +L 5 +R 3 +U 5 +R 5 +L 3 +D 3 +R 3 +D 5 +R 6 +D 3 +L 1 +U 6 +R 4 +D 4 +R 8 +D 6 +L 8 +D 2 +U 1 +L 9 +R 8 +D 6 +L 8 +R 6 +L 8 +U 4 +L 6 +R 5 +U 1 +L 5 +R 8 +D 3 +L 8 +R 9 +U 9 +L 5 +D 5 +R 2 +D 1 +U 4 +R 1 +U 2 +R 2 +L 8 +D 1 +L 3 +D 2 +U 1 +L 8 +R 5 +L 2 +D 9 +U 4 +L 5 +D 3 +U 4 +D 8 +L 4 +U 1 +L 1 +D 2 +U 6 +D 8 +U 3 +D 2 +U 3 +R 5 +U 6 +L 1 +U 1 +L 8 +D 9 +L 4 +U 4 +R 3 +D 6 +U 5 +L 8 +D 4 +U 4 +L 8 +R 6 +L 4 +U 5 +R 5 +U 4 +D 4 +U 4 +R 7 +L 8 +U 6 +L 9 +R 8 +U 5 +L 2 +U 5 +D 3 +L 7 +D 4 +R 1 +U 3 +R 6 +L 9 +R 8 +U 8 +L 7 +R 1 +L 1 +U 3 +D 8 +R 3 +D 1 +L 5 +D 2 +R 4 +U 9 +L 1 +R 1 +L 5 +R 4 +U 8 +D 6 +U 6 +R 9 +L 3 +R 9 +U 1 +R 9 +D 5 +L 4 +R 6 +L 3 +R 2 +U 9 +D 8 +R 4 +L 6 +R 5 +L 6 +U 6 +R 8 +U 10 +L 2 +R 1 +D 8 +L 9 +U 4 +D 1 +L 9 +R 6 +U 7 +D 7 +L 6 +R 6 +U 2 +L 3 +U 6 +R 4 +L 10 +R 1 +L 5 +U 2 +R 6 +D 2 +R 9 +L 4 +U 4 +D 1 +L 7 +R 8 +L 1 +D 9 +L 6 +U 6 +L 10 +U 1 +L 2 +R 2 +U 3 +L 5 +D 4 +L 8 +D 7 +L 5 +R 3 +D 7 +U 10 +D 10 +R 8 +D 3 +R 7 +D 5 +R 10 +D 9 +R 6 +L 3 +R 1 +U 8 +L 3 +R 9 +U 4 +D 3 +R 8 +D 10 +U 5 +D 8 +L 3 +D 8 +L 3 +D 6 +R 6 +D 1 +R 3 +D 10 +R 4 +L 2 +R 10 +D 4 +U 1 +L 9 +R 9 +D 10 +U 4 +D 2 +L 5 +R 8 +L 2 +R 4 +U 5 +D 1 +L 3 +U 4 +D 7 +L 11 +R 2 +L 1 +D 3 +R 8 +D 5 +U 6 +L 11 +D 7 +U 3 +R 4 +L 6 +U 2 +D 1 +R 5 +U 9 +L 3 +U 4 +R 9 +D 11 +R 1 +U 8 +L 7 +R 6 +D 11 +U 8 +R 3 +D 8 +U 6 +R 8 +U 8 +D 9 +U 6 +R 7 +U 11 +L 10 +U 11 +L 10 +U 10 +R 11 +U 10 +L 10 +R 6 +L 11 +D 1 +L 5 +D 4 +R 1 +L 4 +U 2 +D 8 +L 10 +R 8 +D 10 +L 2 +D 5 +L 11 +R 6 +L 9 +U 3 +L 1 +R 11 +L 8 +D 5 +U 11 +D 10 +R 5 +U 9 +L 4 +U 5 +R 8 +L 8 +U 1 +L 11 +U 6 +R 6 +D 5 +R 5 +L 4 +U 2 +L 6 +D 3 +L 9 +R 6 +U 3 +D 11 +R 1 +D 11 +U 4 +R 9 +D 3 +L 7 +D 7 +L 11 +D 5 +L 5 +D 8 +R 10 +U 2 +L 6 +U 10 +D 10 +R 4 +D 6 +U 10 +R 3 +U 5 +R 4 +U 3 +D 11 +R 7 +D 10 +L 6 +U 2 +L 11 +D 12 +L 8 +U 11 +D 10 +L 2 +D 10 +L 2 +R 3 +D 6 +L 9 +D 9 +U 2 +L 5 +R 3 +U 3 +D 1 +U 7 +L 5 +R 2 +U 7 +D 12 +U 5 +L 1 +R 3 +D 8 +U 3 +D 12 +R 5 +L 11 +U 5 +L 2 +R 3 +L 7 +R 9 +U 5 +D 3 +L 4 +D 8 +U 6 +R 11 +D 10 +U 3 +R 4 +L 3 +R 9 +U 7 +D 5 +L 10 +R 1 +U 8 +D 9 +L 12 +R 6 +D 11 +U 7 +D 11 +R 2 +D 9 +R 11 +U 12 +R 2 +D 11 +R 5 +L 1 +U 6 +D 4 +L 7 +U 10 +L 5 +D 8 +R 7 +L 7 +R 6 +U 7 +L 9 +U 12 +L 9 +U 2 +R 6 +U 11 +L 2 +D 3 +R 3 +U 3 +R 8 +D 5 +R 10 +D 12 +R 1 +D 3 +U 8 +D 2 +L 4 +U 7 +R 1 +L 11 +R 7 +U 11 +D 3 +R 9 +L 1 +D 1 +R 11 +L 12 +R 1 +U 11 +R 9 +L 12 +R 5 +D 11 +R 10 +U 3 +L 13 +U 11 +L 11 +R 3 +L 1 +U 12 +L 7 +U 2 +D 7 +U 9 +R 2 +U 7 +L 10 +R 9 +U 13 +D 8 +R 7 +D 7 +L 1 +U 2 +L 9 +D 9 +L 13 +R 13 +L 12 +U 3 +L 1 +R 5 +D 8 +U 2 +D 12 +R 9 +D 11 +R 12 +L 10 +U 9 +R 1 +U 11 +L 5 +R 10 +L 7 +R 9 +U 11 +D 3 +R 13 +L 11 +U 4 +R 1 +U 7 +L 2 +R 3 +L 6 +D 4 +R 8 +L 8 +U 10 +D 12 +U 9 +R 7 +D 1 +R 8 +U 7 +R 1 +D 8 +L 6 +D 13 +L 6 +R 4 +U 13 +L 2 +R 5 +D 2 +U 1 +L 6 +R 7 +D 11 +L 9 +R 11 +U 3 +L 8 +R 6 +L 10 +U 9 +R 1 +U 3 +R 1 +L 6 +R 4 +L 3 +D 8 +U 3 +D 3 +U 8 +L 12 +R 5 +L 3 +D 8 +L 7 +D 3 +R 5 +L 3 +R 11 +L 4 +U 6 +R 7 +L 11 +D 4 +R 5 +U 6 +R 13 +D 11 +U 2 +D 12 +L 8 +R 3 +D 4 +L 12 +D 7 +R 14 +U 8 +R 12 +U 14 +R 1 +L 3 +R 13 +U 14 +D 12 +R 4 +U 4 +R 14 +D 10 +U 11 +R 10 +D 13 +U 8 +R 13 +L 9 +U 6 +D 7 +U 9 +L 11 +U 10 +L 14 +U 7 +L 5 +D 1 +U 8 +R 14 +U 12 +L 1 +R 4 +L 7 +D 2 +R 5 +D 3 +R 14 +U 6 +D 7 +R 2 +L 8 +U 14 +D 12 +U 12 +L 5 +D 5 +L 1 +U 3 +L 10 +R 4 +U 2 +R 11 +D 6 +U 12 +D 5 +U 11 +D 5 +L 8 +D 1 +L 7 +D 1 +U 9 +D 6 +L 10 +D 7 +L 10 +R 7 +D 11 +L 9 +U 13 +D 10 +U 10 +R 13 +L 2 +R 13 +U 3 +R 8 +D 7 +L 2 +U 1 +L 7 +D 11 +U 6 +D 12 +L 3 +R 3 +D 1 +R 2 +D 2 +U 4 +D 1 +L 12 +U 5 +L 3 +R 13 +D 9 +L 3 +D 10 +L 5 +R 13 +D 9 +L 7 +R 12 +L 8 +U 1 +R 5 +L 3 +D 7 +R 4 +U 6 +R 4 +U 15 +D 13 +R 3 +L 14 +R 1 +U 3 +R 4 +U 12 +R 7 +D 7 +U 1 +R 12 +D 9 +R 14 +U 10 +R 1 +U 6 +D 10 +R 14 +D 12 +R 6 +D 13 +U 14 +R 15 +U 9 +L 6 +R 7 +L 13 +R 4 +D 8 +R 2 +L 6 +U 13 +L 15 +D 5 +U 4 +R 14 +D 5 +L 6 +U 3 +R 10 +L 12 +U 9 +D 5 +L 4 +U 1 +R 10 +L 3 +U 5 +R 12 +D 14 +L 10 +R 9 +D 2 +U 6 +D 6 +U 1 +L 8 +R 3 +D 8 +R 1 +D 5 +L 10 +D 11 +L 5 +R 6 +D 8 +R 2 +D 12 +L 7 +R 14 +D 8 +L 8 +U 14 +R 13 +L 7 +D 8 +U 3 +L 6 +U 6 +D 4 +R 9 +L 11 +R 2 +U 10 +R 14 +D 8 +R 2 +U 10 +R 7 +U 3 +R 4 +D 9 +U 9 +D 11 +U 5 +D 9 +R 14 +U 13 +D 5 +L 7 +R 2 +D 9 +R 2 +U 9 +D 8 +L 12 +R 12 +L 3 +R 6 +U 16 +R 15 +D 8 +U 3 +R 1 +L 8 +D 11 +L 6 +R 5 +L 14 +D 15 +U 1 +R 10 +D 11 +R 16 +D 1 +U 6 +L 12 +U 3 +D 9 +U 1 +D 13 +L 14 +R 8 +L 9 +D 3 +U 16 +R 3 +L 11 +R 13 +L 10 +U 10 +L 3 +R 7 +L 6 +R 2 +D 4 +U 15 +R 13 +U 10 +D 1 +L 3 +D 15 +L 9 +R 8 +D 14 +R 11 +L 11 +D 4 +U 15 +L 2 +U 4 +D 3 +U 6 +D 5 +U 15 +L 8 +D 14 +R 1 +U 8 +L 7 +D 8 +R 8 +U 1 +D 8 +R 11 +D 4 +U 14 +R 11 +D 16 +U 4 +D 9 +R 11 +L 16 +D 5 +L 9 +R 6 +U 9 +D 16 +R 4 +L 11 +U 11 +D 6 +U 13 +D 14 +U 13 +L 8 +U 9 +D 3 +R 4 +L 8 +D 7 +L 12 +D 6 +R 14 +L 11 +U 7 +D 4 +U 1 +L 11 +U 15 +L 5 +D 8 +U 2 +R 15 +L 5 +R 7 +L 8 +R 15 +U 8 +D 7 +U 17 +D 5 +U 15 +R 8 +U 15 +L 7 +U 5 +D 11 +L 4 +U 11 +D 13 +R 10 +D 12 +L 16 +D 9 +L 17 +U 1 +R 10 +D 1 +R 16 +U 6 +L 2 +D 7 +U 8 +D 12 +L 15 +U 16 +R 5 +L 13 +D 2 +U 7 +L 14 +D 6 +L 8 +R 12 +U 4 +D 7 +U 4 +R 3 +U 8 +D 5 +L 4 +U 3 +R 13 +L 14 +R 7 +U 11 +D 9 +R 1 +D 15 +R 11 +L 8 +R 7 +D 17 +U 13 +R 15 +D 5 +R 15 +U 7 +R 10 +U 14 +D 2 +L 7 +R 13 +D 10 +U 16 +D 6 +R 10 +D 4 +U 1 +R 14 +U 2 +L 2 +U 1 +L 13 +D 2 +U 16 +D 1 +U 8 +L 7 +U 17 +D 9 +L 10 +U 16 +D 13 +U 15 +D 12 +L 6 +D 9 +L 3 +R 17 +U 16 +L 6 +D 11 +R 11 +L 11 +U 2 +R 15 +D 11 +R 10 +U 2 +D 18 +U 18 +D 18 +L 4 +U 1 +R 1 +L 7 +U 7 +L 12 +U 10 +R 13 +D 16 +R 1 +D 11 +L 12 +R 7 +D 13 +L 10 +D 6 +U 1 +L 14 +R 13 +D 14 +L 3 +D 18 +L 2 +U 9 +L 7 +R 18 +L 11 +U 16 +R 9 +U 8 +D 5 +L 15 +R 16 +D 17 +U 16 +L 10 +U 4 +R 1 +L 10 +U 4 +L 8 +U 5 +L 5 +R 18 +U 11 +R 18 +U 12 +D 18 +R 9 +L 2 +D 10 +L 15 +D 2 +R 7 +D 16 +L 4 +R 13 +L 4 +R 2 +L 14 +D 4 +R 15 +D 14 +R 13 +L 9 +D 1 +U 7 +R 17 +L 6 +U 1 +L 6 +D 6 +U 5 +L 5 +R 10 +U 1 +R 9 +U 3 +D 2 +L 4 +U 1 +D 12 +R 5 +U 3 +R 15 +L 18 +R 3 +D 1 +L 6 +D 16 +U 15 +D 6 +R 8 +D 4 +R 14 +U 10 +R 10 +D 5 +L 14 +U 6 +L 15 +R 10 +D 17 +R 7 +L 13 +R 12 +D 4 +R 11 +D 2 +L 1 +R 13 +U 6 +D 16 +R 5 +D 17 +U 17 +D 11 +R 15 +L 4 +D 13 +L 11 +U 16 +L 3 +D 5 +U 1 +R 16 +L 10 +U 7 +D 9 +R 10 +L 4 +D 4 +L 7 +D 12 +U 5 +D 10 +R 2 +L 9 +D 6 +U 14 +R 4 +U 2 +L 19 +R 15 +L 13 +R 12 +L 8 +D 15 +U 13 +L 4 +U 13 +D 3 +U 7 +L 10 +R 8 +D 14 +R 3 +L 10 +D 3 +U 5 +L 15 +R 5 +L 2 +R 10 +D 5 +R 13 +L 18 +R 7 +L 6 +U 12 +D 16 +R 3 +L 11 +D 7 +R 1 +U 9 +R 9 +D 6 +L 1 +D 13 +U 10 +L 17 +R 10 +L 12 +R 8 +D 10 +R 12 +U 12 +D 14 +U 1 +D 4 +U 2 +L 9 +R 3 +U 2 +R 19 +D 1 +L 4 +R 6 +L 4 +D 4 +R 16 +D 17 +R 3 +D 9 +L 8 +R 15 +D 4 +U 13 +D 4 +U 17 +D 15 +L 17 +D 1 +R 14 +L 18 +U 2 +R 11 +U 5