Mercurial > lbo > hg > aoc22
changeset 13:dfed6e6ea69b
Day 09 part 1
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 11 Dec 2022 10:48:43 +0100 |
parents | ecf80e49d919 |
children | 4bad3ee77ef2 |
files | 09/09.jl 09/input.txt |
diffstat | 2 files changed, 2108 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/09/09.jl Sun Dec 11 10:48:43 2022 +0100 @@ -0,0 +1,108 @@ + +const test_input::String = "R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2"; + +@enum Direction begin + U + D + L + R +end + +function to_direction(c::Char)::Direction + if c == 'U' + U + elseif c == 'D' + D + elseif c == 'L' + L + elseif c == 'R' + R + end +end + +struct Step + direction::Direction + n::Int +end + +function parse_input(lines::Iter)::Vector{Step} where {Iter} + v = Vector{Step}(); + for l in lines + a, b = split(l, ' '); + push!(v, Step(to_direction(a[1]), parse(Int, b))); + end + v +end + +function wheretogo(H::Tuple{Int,Int}, T::Tuple{Int,Int})::Vector{Direction} + if H == T + [] + elseif H[1]==T[1] + if abs(H[2]-T[2]) < 2 + [] + else + (H[2] > T[2] ? [U] : [D]) + end + elseif H[2]==T[2] + if abs(H[1]-T[1]) < 2 + [] + else + (H[1] < T[1] ? [L] : [R]) + end + elseif abs(H[1]-T[1]) + abs(H[2]-T[2]) == 3 # diagonal + if abs(H[1]-T[1]) > abs(H[2]-T[2]) + snd = (H[2]-T[2]) > 0 ? U : D; + (H[1]-T[1]) > 0 ? ([R, snd]) : ([L, snd]) + else + snd = (H[1]-T[1]) > 0 ? R : L; + (H[2]-T[2]) > 0 ? ([U, snd]) : ([D, snd]) + end + else + [] + end +end + +function apply(p::Tuple{Int,Int}, dir::Direction)::Tuple{Int,Int} + if dir == U + p .+ (0,1) + elseif dir == D + p .+ (0,-1) + elseif dir == L + p .+ (-1,0) + else + p .+ (1,0) + end +end + +function process1(v::Vector{Step})::Int + H = (0, 0); + T = (0, 0); + visited = Set{Tuple{Int,Int}}([T]) + + for step in v + for i = 1:step.n + H = apply(H, step.direction); + wtg = wheretogo(H, T); + for w in wtg::Vector{Direction} + T = apply(T, w); + end + @show T + push!(visited, T); + end + end + length(visited) +end + +println("test input (should be 13):"); +println(process1(parse_input(split(test_input, '\n')))); +println("part 1:"); +open("09/input.txt"; read=true) do fh + println(process1(parse_input(eachline(fh)))); +end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/09/input.txt Sun Dec 11 10:48:43 2022 +0100 @@ -0,0 +1,2000 @@ +R 1 +D 1 +L 1 +D 1 +L 2 +U 2 +D 2 +R 1 +D 1 +L 2 +R 1 +L 2 +R 2 +L 1 +R 2 +D 1 +R 1 +D 2 +U 1 +R 1 +D 2 +R 2 +L 1 +D 1 +R 2 +D 2 +R 1 +L 2 +D 1 +L 2 +D 2 +R 2 +D 2 +L 1 +D 1 +L 1 +D 1 +R 2 +L 2 +R 2 +D 2 +R 2 +D 2 +R 2 +L 2 +R 2 +U 1 +R 1 +D 2 +R 1 +L 1 +U 1 +L 2 +U 1 +D 1 +R 1 +U 1 +R 2 +D 2 +U 2 +D 2 +R 1 +L 1 +U 2 +L 2 +D 2 +L 1 +R 2 +D 1 +R 1 +L 2 +U 2 +R 1 +D 1 +U 2 +L 1 +U 2 +L 1 +R 2 +D 2 +R 1 +D 2 +R 1 +D 1 +R 1 +D 1 +L 2 +D 2 +R 2 +D 2 +R 1 +D 1 +R 2 +L 1 +U 2 +R 2 +D 1 +L 2 +U 1 +D 2 +L 2 +D 2 +L 2 +D 1 +R 1 +L 1 +U 2 +L 2 +D 1 +L 2 +U 1 +L 3 +D 1 +R 1 +U 3 +L 2 +U 1 +D 3 +L 1 +D 2 +R 1 +L 3 +D 2 +L 2 +D 1 +L 1 +R 2 +L 3 +D 2 +L 1 +U 3 +L 1 +R 3 +U 1 +R 3 +U 3 +D 1 +L 2 +U 2 +D 2 +U 3 +D 3 +L 1 +U 3 +D 3 +L 3 +R 1 +D 1 +U 2 +R 1 +U 3 +L 3 +D 2 +L 3 +D 1 +R 2 +U 1 +D 2 +L 3 +D 2 +U 2 +R 1 +L 3 +R 2 +L 2 +U 2 +R 2 +L 1 +D 1 +U 3 +D 1 +R 2 +L 1 +U 1 +R 1 +L 1 +D 2 +L 1 +D 1 +L 1 +D 3 +U 3 +D 3 +R 3 +D 2 +L 1 +R 1 +L 1 +D 3 +L 2 +D 1 +R 1 +D 3 +U 3 +L 2 +D 1 +U 1 +D 1 +U 3 +R 2 +L 1 +D 3 +U 3 +D 3 +U 2 +L 1 +R 1 +U 1 +D 3 +R 2 +U 1 +L 2 +U 1 +L 2 +U 2 +D 1 +L 3 +U 1 +R 1 +L 2 +U 1 +D 2 +L 1 +D 4 +L 3 +D 4 +R 2 +D 2 +L 3 +U 2 +L 3 +D 1 +L 4 +R 2 +D 1 +U 4 +L 3 +D 1 +R 1 +D 4 +R 4 +U 3 +D 3 +L 3 +D 3 +U 1 +R 4 +L 2 +D 1 +R 3 +L 4 +D 1 +R 2 +L 4 +U 3 +L 4 +R 1 +L 3 +D 1 +U 4 +L 4 +R 3 +U 4 +D 3 +U 2 +R 3 +D 1 +R 3 +L 3 +D 2 +U 4 +R 3 +U 4 +L 4 +R 4 +L 2 +R 2 +D 3 +L 2 +U 1 +L 4 +U 3 +R 3 +L 4 +U 1 +L 1 +U 1 +D 2 +R 1 +U 1 +L 3 +R 4 +L 2 +D 4 +R 3 +L 2 +R 1 +L 4 +R 1 +D 2 +R 4 +L 3 +U 3 +L 3 +D 1 +R 2 +L 4 +D 2 +R 3 +U 2 +D 3 +R 2 +U 4 +L 1 +U 2 +D 2 +L 1 +D 4 +R 3 +L 3 +R 4 +D 1 +U 2 +R 2 +D 1 +L 3 +U 2 +L 3 +R 1 +D 1 +R 4 +L 4 +R 1 +U 3 +R 4 +L 3 +D 3 +L 4 +R 4 +D 5 +R 2 +U 5 +L 1 +D 5 +L 5 +R 1 +L 5 +U 5 +L 3 +D 3 +L 2 +D 1 +L 1 +U 1 +L 1 +D 2 +L 3 +U 2 +D 3 +L 4 +R 5 +U 2 +L 3 +D 3 +R 4 +U 3 +D 5 +U 1 +R 3 +L 3 +D 1 +U 2 +L 3 +R 5 +D 2 +R 2 +U 4 +L 2 +R 4 +D 5 +R 2 +U 2 +D 5 +L 3 +R 2 +D 2 +L 1 +U 2 +R 1 +D 2 +U 1 +L 2 +U 5 +R 1 +U 4 +D 1 +R 4 +U 4 +R 3 +D 1 +U 2 +L 5 +U 1 +L 3 +D 1 +U 5 +D 5 +U 1 +L 3 +D 1 +R 2 +L 4 +R 4 +L 2 +U 2 +R 5 +U 1 +R 5 +L 1 +D 1 +R 3 +D 2 +R 4 +L 5 +D 3 +L 3 +U 5 +R 2 +D 5 +L 1 +U 2 +D 2 +U 4 +R 4 +L 4 +U 1 +D 1 +U 4 +R 4 +D 3 +L 4 +R 2 +D 3 +R 5 +U 4 +L 4 +R 4 +L 2 +U 4 +R 4 +D 1 +R 3 +D 6 +U 6 +D 5 +L 4 +R 2 +D 5 +R 5 +D 3 +R 3 +U 3 +D 3 +U 2 +L 2 +R 6 +L 6 +D 1 +L 4 +R 6 +D 5 +L 2 +R 4 +U 2 +L 5 +R 6 +U 6 +D 1 +U 3 +D 3 +R 1 +L 4 +D 2 +U 1 +L 2 +R 1 +D 3 +U 5 +R 1 +D 2 +U 5 +D 5 +R 3 +U 2 +D 4 +U 2 +R 5 +U 4 +R 2 +L 4 +U 5 +L 3 +D 1 +R 3 +U 3 +L 1 +U 1 +L 2 +R 5 +U 2 +D 4 +R 1 +D 5 +L 6 +R 6 +U 2 +D 4 +R 4 +D 4 +L 6 +D 3 +U 1 +L 4 +U 5 +R 3 +D 3 +R 6 +D 3 +R 6 +D 1 +L 3 +R 4 +D 5 +R 4 +D 6 +R 3 +U 6 +R 4 +U 1 +D 4 +L 2 +D 4 +L 2 +U 2 +R 4 +D 4 +L 1 +D 4 +U 4 +D 6 +U 3 +D 1 +L 2 +D 5 +R 2 +D 2 +L 5 +R 4 +L 5 +R 5 +U 6 +L 1 +R 3 +U 5 +D 1 +U 2 +R 2 +D 4 +R 4 +D 6 +R 4 +L 4 +D 2 +R 6 +L 1 +D 1 +U 3 +R 1 +D 4 +L 1 +D 3 +U 5 +R 2 +U 2 +D 6 +L 5 +U 4 +L 5 +R 3 +U 7 +R 2 +D 1 +R 6 +D 6 +U 6 +R 5 +D 5 +R 6 +D 6 +R 6 +D 5 +U 5 +D 7 +L 4 +U 3 +D 3 +U 2 +L 2 +U 4 +D 1 +R 7 +U 4 +L 1 +D 4 +L 3 +R 6 +L 1 +R 2 +L 4 +R 5 +U 6 +D 6 +U 2 +R 5 +U 4 +L 5 +U 3 +D 1 +L 6 +R 2 +D 2 +L 3 +U 5 +R 6 +U 7 +R 1 +L 7 +D 5 +U 5 +D 2 +R 4 +U 2 +L 7 +R 4 +D 7 +U 4 +D 3 +R 2 +D 3 +L 3 +U 6 +R 2 +L 6 +D 2 +R 6 +L 3 +R 4 +U 1 +D 3 +U 2 +L 4 +D 6 +U 7 +D 4 +L 3 +R 1 +U 6 +L 3 +R 3 +U 7 +R 7 +U 6 +L 1 +U 8 +L 1 +D 8 +L 6 +R 3 +L 7 +D 5 +U 8 +R 5 +L 4 +U 8 +L 3 +D 2 +U 1 +R 8 +D 8 +R 7 +U 1 +D 2 +R 6 +L 8 +D 5 +L 6 +U 1 +R 2 +U 6 +L 3 +D 6 +U 2 +R 2 +D 1 +U 4 +L 8 +D 8 +R 1 +L 2 +R 2 +D 7 +U 5 +D 8 +L 1 +R 7 +L 8 +D 2 +R 8 +D 7 +U 3 +R 3 +U 3 +D 1 +L 2 +U 6 +D 7 +U 8 +R 6 +D 6 +R 5 +U 7 +R 8 +L 1 +U 7 +D 2 +R 6 +U 7 +R 3 +D 3 +R 3 +U 4 +D 8 +L 7 +R 5 +U 1 +L 6 +R 8 +D 6 +R 4 +L 4 +D 1 +U 5 +L 6 +U 1 +D 8 +U 2 +R 4 +L 2 +R 8 +D 1 +R 1 +L 4 +R 7 +U 7 +D 8 +R 8 +L 6 +U 7 +L 4 +D 2 +R 2 +U 5 +D 1 +R 5 +L 6 +U 8 +L 1 +R 7 +D 8 +L 3 +D 2 +U 3 +D 3 +L 1 +R 3 +L 7 +D 6 +R 4 +D 1 +U 8 +L 3 +D 6 +L 7 +U 5 +R 6 +D 2 +L 4 +R 9 +D 2 +R 4 +D 6 +R 5 +L 7 +R 5 +U 7 +R 1 +L 5 +U 6 +R 4 +D 8 +U 5 +L 4 +U 1 +D 8 +U 9 +D 4 +U 7 +L 4 +R 8 +D 4 +R 4 +D 8 +R 1 +D 3 +R 5 +D 7 +U 8 +D 2 +R 2 +U 1 +L 1 +U 2 +L 9 +R 9 +D 1 +U 1 +D 8 +R 3 +L 8 +D 7 +U 9 +R 6 +L 4 +U 8 +D 4 +U 2 +L 3 +D 8 +L 2 +R 5 +U 4 +D 6 +U 6 +L 8 +R 7 +D 2 +R 3 +L 8 +U 9 +R 2 +U 4 +L 9 +R 5 +D 5 +R 4 +D 6 +R 3 +D 3 +R 8 +D 3 +R 4 +D 1 +U 2 +D 6 +R 4 +D 7 +U 5 +D 2 +R 6 +D 3 +U 3 +R 4 +U 5 +L 3 +U 5 +L 8 +D 3 +L 8 +D 5 +R 4 +L 8 +R 5 +U 8 +R 10 +D 2 +U 10 +R 1 +D 1 +L 4 +D 9 +L 6 +U 2 +R 3 +D 2 +L 6 +R 2 +L 10 +D 2 +L 10 +U 3 +L 2 +D 8 +U 10 +R 5 +L 1 +U 8 +R 9 +D 8 +U 2 +R 4 +U 3 +D 2 +U 4 +D 2 +R 3 +L 2 +U 4 +D 1 +U 9 +R 2 +U 1 +R 3 +D 3 +L 3 +R 2 +D 1 +U 8 +D 1 +L 5 +R 4 +L 8 +D 3 +L 1 +U 10 +R 9 +D 9 +U 9 +D 1 +R 6 +L 6 +U 6 +L 1 +D 5 +L 4 +U 8 +L 10 +U 9 +R 9 +D 5 +U 4 +D 7 +R 5 +U 10 +D 5 +U 1 +R 5 +L 7 +D 9 +R 5 +L 3 +U 2 +D 6 +R 4 +D 7 +U 4 +R 8 +L 5 +R 8 +L 9 +R 8 +D 1 +R 1 +L 9 +D 7 +L 10 +D 6 +R 8 +U 4 +D 4 +R 7 +L 9 +D 9 +R 9 +L 1 +R 6 +L 7 +R 10 +L 1 +U 9 +D 11 +R 4 +D 4 +U 5 +R 8 +U 9 +L 8 +D 8 +L 10 +U 10 +L 4 +D 1 +L 3 +U 7 +D 11 +U 4 +L 7 +R 2 +U 9 +D 4 +R 4 +U 1 +L 5 +U 10 +R 4 +D 3 +L 9 +R 2 +L 3 +U 5 +D 6 +U 2 +R 7 +D 7 +R 4 +L 8 +U 5 +R 1 +U 4 +D 3 +U 5 +R 9 +D 2 +R 4 +D 8 +U 9 +R 7 +U 5 +D 3 +R 6 +L 7 +U 7 +R 10 +L 3 +U 10 +L 8 +R 11 +L 3 +U 10 +R 5 +D 1 +U 7 +R 6 +U 9 +L 3 +R 9 +L 4 +R 9 +L 5 +R 9 +D 5 +U 8 +R 7 +L 7 +R 4 +L 9 +R 9 +D 7 +R 2 +L 3 +U 1 +L 1 +D 11 +U 3 +D 5 +R 3 +U 11 +L 1 +U 7 +R 8 +D 8 +U 7 +D 7 +R 6 +D 3 +R 8 +L 9 +U 10 +D 10 +L 1 +D 9 +L 1 +R 5 +D 6 +U 5 +L 1 +R 10 +L 1 +U 7 +D 11 +R 8 +U 11 +L 6 +R 4 +U 7 +R 3 +L 8 +D 8 +L 12 +U 3 +D 12 +L 6 +R 1 +U 8 +R 3 +U 4 +L 3 +D 10 +L 9 +D 6 +L 12 +R 11 +D 4 +U 4 +L 12 +R 1 +U 1 +D 10 +L 11 +R 3 +D 4 +R 4 +U 4 +D 3 +U 10 +R 9 +U 9 +L 1 +U 10 +D 11 +U 4 +D 3 +L 10 +R 5 +D 8 +R 5 +U 6 +R 12 +L 10 +U 10 +D 2 +L 6 +U 5 +D 3 +R 2 +D 3 +U 7 +D 1 +L 5 +U 9 +D 3 +U 10 +L 10 +U 4 +L 12 +R 11 +D 2 +L 10 +U 6 +L 4 +D 5 +R 3 +L 4 +D 8 +U 7 +R 12 +D 1 +U 5 +L 2 +D 7 +R 3 +U 1 +L 10 +R 9 +L 7 +R 8 +U 9 +R 9 +U 1 +L 7 +D 6 +L 1 +R 11 +L 9 +U 12 +R 8 +U 3 +R 5 +U 5 +L 12 +R 7 +L 8 +R 11 +L 4 +R 10 +D 2 +L 4 +U 12 +R 5 +D 1 +L 12 +D 1 +L 5 +D 3 +U 8 +L 5 +U 5 +R 7 +D 1 +L 3 +D 9 +L 12 +R 5 +D 12 +U 6 +L 7 +D 6 +L 5 +U 6 +R 7 +U 5 +D 8 +R 11 +D 12 +R 10 +L 11 +R 6 +L 13 +D 3 +L 2 +U 4 +D 12 +U 8 +D 6 +R 2 +D 2 +R 13 +U 1 +D 6 +R 8 +D 12 +L 8 +R 4 +L 7 +R 8 +D 9 +U 3 +L 1 +U 3 +L 10 +R 12 +U 13 +R 7 +U 1 +D 13 +U 6 +L 13 +D 11 +U 8 +L 10 +D 13 +R 11 +L 8 +D 5 +U 11 +R 1 +D 9 +L 4 +D 12 +R 13 +L 11 +D 7 +L 9 +U 8 +L 13 +D 11 +L 10 +R 4 +U 4 +D 4 +L 5 +D 7 +L 12 +U 10 +R 3 +L 10 +U 2 +L 2 +R 8 +L 6 +U 11 +L 4 +D 4 +U 9 +L 1 +R 12 +D 12 +R 13 +D 8 +R 8 +L 12 +U 5 +D 8 +L 7 +D 13 +U 12 +D 12 +R 10 +U 10 +R 13 +D 9 +R 3 +U 13 +L 12 +R 6 +U 14 +D 11 +R 14 +L 2 +R 5 +U 6 +R 10 +U 6 +L 3 +R 8 +U 7 +L 3 +D 4 +R 13 +L 10 +D 5 +U 10 +R 13 +L 6 +R 6 +L 1 +D 4 +U 10 +R 14 +U 7 +L 11 +R 14 +D 11 +R 8 +D 2 +U 13 +L 5 +R 10 +D 6 +U 7 +D 7 +L 6 +U 11 +L 4 +D 11 +L 9 +R 6 +L 5 +U 14 +R 2 +D 1 +U 12 +L 3 +U 3 +D 2 +U 3 +L 7 +U 10 +D 2 +R 9 +L 8 +U 10 +D 4 +R 7 +U 4 +L 8 +R 3 +L 6 +D 2 +R 11 +L 2 +D 12 +U 14 +L 1 +R 1 +U 12 +R 3 +L 14 +U 9 +D 7 +L 3 +U 8 +R 9 +L 4 +U 7 +D 4 +R 5 +D 7 +R 11 +L 13 +R 3 +D 10 +R 11 +U 6 +L 4 +D 9 +R 4 +U 5 +D 9 +R 13 +D 6 +R 11 +L 1 +D 1 +R 13 +U 4 +L 9 +U 14 +L 9 +R 2 +D 2 +L 7 +D 13 +L 11 +D 8 +R 4 +L 7 +R 4 +U 12 +D 5 +R 13 +D 14 +R 7 +U 6 +R 2 +U 13 +L 7 +U 14 +R 11 +U 15 +R 8 +U 7 +D 7 +L 5 +U 2 +D 13 +U 11 +L 12 +R 6 +D 13 +L 6 +U 8 +L 3 +R 15 +L 13 +D 1 +U 2 +L 14 +D 8 +L 4 +U 6 +R 11 +D 11 +R 2 +U 13 +L 13 +R 2 +U 15 +R 3 +D 4 +L 7 +R 7 +D 7 +R 7 +L 13 +R 10 +U 8 +R 13 +L 2 +U 13 +D 8 +U 15 +L 4 +D 13 +R 13 +U 8 +R 3 +L 11 +R 12 +U 2 +L 13 +U 1 +L 9 +U 11 +D 14 +R 12 +D 6 +U 6 +D 12 +U 8 +R 3 +U 4 +R 8 +U 2 +D 5 +L 12 +U 14 +D 4 +R 1 +U 10 +L 10 +R 6 +D 13 +U 11 +D 11 +U 11 +R 14 +D 15 +L 11 +U 14 +D 7 +L 12 +D 3 +L 14 +U 7 +R 1 +U 5 +L 1 +R 15 +U 13 +D 7 +R 9 +L 15 +U 15 +L 15 +D 7 +R 15 +D 3 +U 5 +L 8 +R 13 +L 15 +D 8 +L 15 +D 12 +L 5 +D 14 +U 16 +R 11 +L 14 +R 6 +L 10 +U 11 +R 8 +U 16 +L 6 +U 9 +L 13 +D 14 +R 7 +D 10 +L 15 +D 1 +L 10 +D 1 +R 2 +U 15 +L 9 +U 6 +D 3 +L 8 +D 13 +U 16 +D 12 +R 2 +L 1 +D 8 +L 15 +R 14 +D 8 +L 9 +U 12 +R 3 +U 15 +D 10 +U 13 +R 8 +L 15 +D 9 +R 8 +L 9 +U 2 +R 7 +L 11 +R 3 +D 13 +U 16 +L 9 +U 6 +L 7 +U 4 +L 16 +U 16 +L 12 +U 9 +R 8 +D 13 +L 2 +R 15 +D 7 +U 15 +D 16 +R 12 +L 12 +U 8 +L 8 +D 3 +R 16 +L 3 +U 13 +R 1 +L 5 +R 10 +U 13 +D 7 +R 3 +D 10 +L 2 +R 1 +U 4 +L 13 +U 15 +R 4 +D 1 +R 2 +L 5 +D 3 +L 1 +R 4 +L 1 +U 1 +D 7 +R 9 +L 12 +R 13 +D 5 +R 5 +D 9 +L 15 +R 17 +D 4 +R 2 +U 1 +D 1 +R 3 +L 15 +D 10 +L 8 +U 16 +L 14 +U 12 +R 5 +L 13 +D 10 +L 15 +D 12 +U 4 +D 8 +R 9 +L 17 +D 17 +U 3 +D 2 +L 14 +D 12 +L 5 +D 9 +L 3 +R 10 +U 1 +R 9 +U 16 +L 14 +R 13 +L 11 +R 4 +U 2 +L 10 +D 6 +R 5 +D 17 +L 15 +R 12 +U 15 +L 9 +U 9 +D 3 +R 8 +U 6 +R 8 +U 9 +D 14 +R 7 +U 1 +L 3 +R 3 +D 2 +U 4 +R 5 +L 17 +D 16 +U 13 +D 5 +U 6 +R 2 +U 5 +D 7 +U 11 +R 6 +L 17 +R 4 +L 14 +D 3 +U 15 +L 5 +R 4 +U 1 +D 16 +L 16 +U 10 +L 10 +D 17 +R 6 +D 2 +U 10 +L 10 +D 12 +R 15 +L 4 +R 11 +L 17 +U 15 +L 8 +U 8 +L 16 +D 6 +L 7 +U 17 +L 14 +D 6 +L 5 +R 14 +U 5 +D 1 +U 2 +D 17 +R 14 +L 1 +R 4 +D 7 +L 8 +U 7 +D 6 +L 16 +U 5 +D 7 +R 7 +D 17 +L 16 +R 1 +D 5 +U 17 +L 2 +U 7 +L 16 +U 15 +L 17 +D 3 +L 2 +R 7 +L 11 +R 1 +L 16 +U 2 +L 1 +R 18 +U 5 +L 9 +U 4 +D 8 +U 4 +L 18 +D 17 +L 14 +D 2 +R 1 +U 13 +L 9 +R 14 +D 14 +U 12 +D 14 +L 2 +U 10 +D 11 +R 10 +L 9 +U 7 +D 12 +L 4 +D 2 +R 17 +D 1 +U 15 +R 14 +D 16 +L 1 +R 11 +U 9 +R 8 +U 6 +D 7 +U 7 +L 2 +D 10 +U 9 +D 9 +L 11 +D 11 +L 14 +U 16 +D 11 +L 17 +R 5 +L 13 +U 16 +R 16 +U 18 +D 1 +R 1 +U 13 +R 6 +L 7 +U 11 +D 12 +L 8 +U 17 +D 11 +U 8 +L 14 +U 17 +L 4 +U 18 +D 18 +R 8 +D 13 +L 10 +U 3 +R 9 +L 14 +R 7 +U 14 +R 14 +L 9 +U 5 +R 4 +D 13 +U 10 +D 1 +R 10 +D 4 +R 3 +U 14 +D 10 +U 12 +L 11 +U 9 +L 16 +R 5 +L 14 +D 4 +U 11 +L 2 +R 10 +U 8 +D 9 +L 2 +R 16 +L 1 +R 12 +U 7 +D 11 +U 18 +D 4 +R 8 +U 18 +D 5 +R 15 +U 16 +L 2 +D 15 +U 5 +D 10 +U 18 +L 7 +U 4 +R 2 +U 17 +L 2 +R 3 +D 2 +L 2 +U 3 +R 10 +L 8 +U 4 +L 18 +U 6 +D 11 +R 13 +D 9 +U 10 +L 16 +R 15 +L 4 +D 1 +L 5 +D 7 +U 18 +L 5 +R 7 +L 15 +U 4 +L 6 +U 19 +D 19 +L 2 +R 2 +L 19 +D 9 +L 14 +U 18 +D 12 +R 19 +U 15 +L 16 +U 9 +L 11 +R 5 +L 14 +R 16 +U 19 +D 7 +U 8 +R 6 +U 14 +R 17 +D 9 +L 5 +U 3 +D 9 +U 8 +L 4 +U 12 +D 12 +R 13 +U 3 +R 18 +U 5 +L 12 +U 4 +L 1 +D 14 +R 5 +L 19 +U 17 +R 18 +D 11 +L 4 +U 18 +L 9