1040 lines
12 KiB
Erlang
1040 lines
12 KiB
Erlang
-module(day2).
|
|
|
|
-export ([solve/1, solve/2]).
|
|
|
|
solve(A) ->
|
|
D = [
|
|
{forward, 3},
|
|
{down, 4},
|
|
{forward, 3},
|
|
{up, 4},
|
|
{down, 4},
|
|
{down, 6},
|
|
{down, 3},
|
|
{down, 1},
|
|
{up, 7},
|
|
{down, 7},
|
|
{forward, 4},
|
|
{forward, 7},
|
|
{forward, 3},
|
|
{down, 2},
|
|
{forward, 5},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{up, 9},
|
|
{down, 6},
|
|
{forward, 8},
|
|
{forward, 8},
|
|
{down, 8},
|
|
{forward, 7},
|
|
{down, 9},
|
|
{down, 4},
|
|
{down, 6},
|
|
{forward, 1},
|
|
{down, 2},
|
|
{down, 7},
|
|
{up, 4},
|
|
{forward, 8},
|
|
{down, 5},
|
|
{down, 7},
|
|
{down, 1},
|
|
{forward, 5},
|
|
{down, 1},
|
|
{up, 1},
|
|
{forward, 5},
|
|
{forward, 1},
|
|
{down, 1},
|
|
{forward, 3},
|
|
{up, 4},
|
|
{up, 4},
|
|
{up, 8},
|
|
{up, 1},
|
|
{forward, 7},
|
|
{down, 3},
|
|
{forward, 3},
|
|
{forward, 3},
|
|
{down, 3},
|
|
{down, 6},
|
|
{down, 7},
|
|
{forward, 4},
|
|
{down, 2},
|
|
{up, 3},
|
|
{forward, 5},
|
|
{forward, 1},
|
|
{down, 3},
|
|
{up, 3},
|
|
{up, 4},
|
|
{forward, 2},
|
|
{forward, 6},
|
|
{up, 1},
|
|
{down, 9},
|
|
{up, 3},
|
|
{forward, 5},
|
|
{forward, 2},
|
|
{up, 9},
|
|
{up, 2},
|
|
{down, 5},
|
|
{down, 5},
|
|
{forward, 7},
|
|
{forward, 1},
|
|
{down, 7},
|
|
{forward, 9},
|
|
{forward, 8},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 4},
|
|
{down, 5},
|
|
{forward, 7},
|
|
{forward, 3},
|
|
{down, 2},
|
|
{forward, 2},
|
|
{forward, 2},
|
|
{down, 1},
|
|
{up, 8},
|
|
{down, 2},
|
|
{down, 2},
|
|
{forward, 6},
|
|
{up, 9},
|
|
{forward, 6},
|
|
{up, 6},
|
|
{forward, 5},
|
|
{forward, 5},
|
|
{down, 2},
|
|
{forward, 5},
|
|
{up, 5},
|
|
{forward, 5},
|
|
{up, 4},
|
|
{down, 1},
|
|
{up, 5},
|
|
{down, 2},
|
|
{forward, 3},
|
|
{down, 1},
|
|
{forward, 2},
|
|
{up, 4},
|
|
{down, 6},
|
|
{forward, 1},
|
|
{forward, 6},
|
|
{forward, 6},
|
|
{forward, 8},
|
|
{forward, 8},
|
|
{forward, 3},
|
|
{forward, 5},
|
|
{down, 8},
|
|
{up, 8},
|
|
{down, 6},
|
|
{down, 8},
|
|
{forward, 8},
|
|
{down, 6},
|
|
{forward, 4},
|
|
{down, 4},
|
|
{forward, 7},
|
|
{forward, 9},
|
|
{down, 6},
|
|
{up, 6},
|
|
{forward, 6},
|
|
{down, 9},
|
|
{up, 7},
|
|
{up, 9},
|
|
{down, 1},
|
|
{up, 5},
|
|
{forward, 2},
|
|
{forward, 3},
|
|
{up, 6},
|
|
{forward, 8},
|
|
{forward, 7},
|
|
{down, 4},
|
|
{up, 8},
|
|
{up, 2},
|
|
{down, 2},
|
|
{up, 3},
|
|
{down, 2},
|
|
{down, 8},
|
|
{forward, 9},
|
|
{up, 9},
|
|
{forward, 7},
|
|
{down, 9},
|
|
{forward, 4},
|
|
{forward, 3},
|
|
{forward, 2},
|
|
{down, 5},
|
|
{forward, 3},
|
|
{forward, 1},
|
|
{down, 2},
|
|
{forward, 3},
|
|
{down, 7},
|
|
{down, 8},
|
|
{forward, 9},
|
|
{down, 9},
|
|
{forward, 2},
|
|
{up, 5},
|
|
{up, 2},
|
|
{down, 8},
|
|
{down, 1},
|
|
{down, 7},
|
|
{forward, 6},
|
|
{down, 2},
|
|
{forward, 9},
|
|
{down, 6},
|
|
{down, 9},
|
|
{forward, 9},
|
|
{down, 2},
|
|
{up, 5},
|
|
{forward, 2},
|
|
{down, 7},
|
|
{down, 6},
|
|
{up, 1},
|
|
{forward, 9},
|
|
{up, 7},
|
|
{down, 1},
|
|
{forward, 5},
|
|
{down, 5},
|
|
{up, 2},
|
|
{forward, 6},
|
|
{forward, 2},
|
|
{up, 9},
|
|
{up, 7},
|
|
{down, 2},
|
|
{down, 1},
|
|
{forward, 6},
|
|
{down, 2},
|
|
{forward, 9},
|
|
{forward, 8},
|
|
{forward, 2},
|
|
{up, 1},
|
|
{down, 7},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 9},
|
|
{down, 5},
|
|
{down, 5},
|
|
{down, 5},
|
|
{forward, 4},
|
|
{up, 4},
|
|
{down, 7},
|
|
{up, 6},
|
|
{forward, 3},
|
|
{up, 5},
|
|
{forward, 3},
|
|
{forward, 6},
|
|
{forward, 8},
|
|
{down, 6},
|
|
{forward, 4},
|
|
{forward, 5},
|
|
{up, 8},
|
|
{down, 9},
|
|
{down, 3},
|
|
{down, 8},
|
|
{forward, 8},
|
|
{forward, 1},
|
|
{down, 7},
|
|
{down, 2},
|
|
{forward, 8},
|
|
{forward, 7},
|
|
{up, 2},
|
|
{down, 9},
|
|
{forward, 2},
|
|
{down, 6},
|
|
{down, 7},
|
|
{up, 2},
|
|
{up, 7},
|
|
{down, 6},
|
|
{down, 8},
|
|
{down, 2},
|
|
{forward, 8},
|
|
{down, 6},
|
|
{up, 1},
|
|
{down, 6},
|
|
{down, 5},
|
|
{down, 8},
|
|
{down, 1},
|
|
{down, 4},
|
|
{down, 1},
|
|
{down, 8},
|
|
{up, 3},
|
|
{forward, 1},
|
|
{forward, 5},
|
|
{forward, 2},
|
|
{forward, 2},
|
|
{down, 5},
|
|
{down, 2},
|
|
{down, 8},
|
|
{up, 7},
|
|
{forward, 2},
|
|
{forward, 1},
|
|
{forward, 4},
|
|
{up, 4},
|
|
{down, 5},
|
|
{up, 4},
|
|
{down, 8},
|
|
{up, 5},
|
|
{down, 6},
|
|
{down, 8},
|
|
{down, 8},
|
|
{forward, 8},
|
|
{forward, 5},
|
|
{down, 1},
|
|
{down, 2},
|
|
{down, 4},
|
|
{forward, 5},
|
|
{up, 3},
|
|
{forward, 3},
|
|
{down, 7},
|
|
{forward, 9},
|
|
{down, 9},
|
|
{down, 5},
|
|
{forward, 5},
|
|
{down, 9},
|
|
{forward, 9},
|
|
{down, 5},
|
|
{up, 4},
|
|
{up, 9},
|
|
{forward, 1},
|
|
{forward, 6},
|
|
{forward, 9},
|
|
{forward, 2},
|
|
{up, 5},
|
|
{forward, 9},
|
|
{down, 8},
|
|
{up, 2},
|
|
{up, 9},
|
|
{forward, 1},
|
|
{down, 7},
|
|
{down, 4},
|
|
{down, 4},
|
|
{up, 3},
|
|
{forward, 6},
|
|
{down, 1},
|
|
{forward, 6},
|
|
{forward, 3},
|
|
{up, 3},
|
|
{forward, 1},
|
|
{down, 1},
|
|
{up, 8},
|
|
{up, 3},
|
|
{forward, 9},
|
|
{forward, 1},
|
|
{forward, 8},
|
|
{forward, 8},
|
|
{up, 7},
|
|
{forward, 2},
|
|
{forward, 9},
|
|
{down, 9},
|
|
{down, 2},
|
|
{down, 5},
|
|
{down, 1},
|
|
{forward, 9},
|
|
{forward, 9},
|
|
{up, 4},
|
|
{forward, 6},
|
|
{down, 3},
|
|
{forward, 2},
|
|
{forward, 5},
|
|
{up, 4},
|
|
{forward, 2},
|
|
{up, 1},
|
|
{up, 4},
|
|
{up, 3},
|
|
{up, 6},
|
|
{up, 6},
|
|
{down, 2},
|
|
{up, 7},
|
|
{down, 1},
|
|
{down, 3},
|
|
{forward, 3},
|
|
{up, 5},
|
|
{forward, 4},
|
|
{down, 5},
|
|
{forward, 9},
|
|
{down, 2},
|
|
{up, 5},
|
|
{forward, 9},
|
|
{down, 3},
|
|
{down, 5},
|
|
{forward, 3},
|
|
{forward, 7},
|
|
{forward, 9},
|
|
{up, 2},
|
|
{down, 6},
|
|
{up, 6},
|
|
{down, 8},
|
|
{forward, 8},
|
|
{down, 1},
|
|
{forward, 3},
|
|
{forward, 4},
|
|
{up, 6},
|
|
{up, 3},
|
|
{forward, 6},
|
|
{forward, 5},
|
|
{forward, 2},
|
|
{down, 7},
|
|
{down, 1},
|
|
{down, 5},
|
|
{forward, 6},
|
|
{down, 4},
|
|
{down, 2},
|
|
{forward, 7},
|
|
{up, 9},
|
|
{forward, 3},
|
|
{down, 2},
|
|
{up, 3},
|
|
{down, 3},
|
|
{down, 1},
|
|
{up, 5},
|
|
{down, 4},
|
|
{forward, 1},
|
|
{forward, 2},
|
|
{forward, 2},
|
|
{forward, 6},
|
|
{forward, 2},
|
|
{down, 2},
|
|
{down, 8},
|
|
{down, 1},
|
|
{down, 2},
|
|
{down, 7},
|
|
{up, 7},
|
|
{down, 7},
|
|
{forward, 7},
|
|
{forward, 7},
|
|
{down, 8},
|
|
{forward, 1},
|
|
{down, 7},
|
|
{down, 7},
|
|
{down, 8},
|
|
{up, 9},
|
|
{down, 4},
|
|
{up, 6},
|
|
{forward, 7},
|
|
{up, 2},
|
|
{down, 8},
|
|
{forward, 2},
|
|
{down, 8},
|
|
{forward, 4},
|
|
{down, 4},
|
|
{forward, 4},
|
|
{up, 1},
|
|
{down, 2},
|
|
{forward, 6},
|
|
{forward, 7},
|
|
{forward, 8},
|
|
{down, 2},
|
|
{forward, 5},
|
|
{forward, 1},
|
|
{up, 9},
|
|
{down, 8},
|
|
{down, 2},
|
|
{forward, 1},
|
|
{down, 8},
|
|
{forward, 2},
|
|
{up, 2},
|
|
{up, 3},
|
|
{up, 7},
|
|
{forward, 3},
|
|
{forward, 3},
|
|
{up, 3},
|
|
{up, 5},
|
|
{forward, 8},
|
|
{down, 6},
|
|
{forward, 6},
|
|
{down, 2},
|
|
{down, 7},
|
|
{forward, 3},
|
|
{forward, 6},
|
|
{down, 5},
|
|
{down, 6},
|
|
{up, 4},
|
|
{forward, 8},
|
|
{up, 8},
|
|
{down, 9},
|
|
{forward, 7},
|
|
{forward, 1},
|
|
{down, 6},
|
|
{up, 1},
|
|
{down, 7},
|
|
{forward, 4},
|
|
{forward, 8},
|
|
{down, 2},
|
|
{forward, 8},
|
|
{down, 3},
|
|
{down, 5},
|
|
{down, 5},
|
|
{forward, 8},
|
|
{down, 3},
|
|
{up, 8},
|
|
{down, 9},
|
|
{forward, 2},
|
|
{down, 9},
|
|
{forward, 4},
|
|
{up, 8},
|
|
{forward, 4},
|
|
{up, 1},
|
|
{forward, 8},
|
|
{forward, 2},
|
|
{forward, 5},
|
|
{down, 2},
|
|
{down, 6},
|
|
{up, 2},
|
|
{down, 8},
|
|
{forward, 9},
|
|
{forward, 5},
|
|
{forward, 6},
|
|
{forward, 4},
|
|
{down, 4},
|
|
{down, 6},
|
|
{up, 1},
|
|
{forward, 3},
|
|
{down, 6},
|
|
{forward, 6},
|
|
{forward, 1},
|
|
{forward, 6},
|
|
{forward, 9},
|
|
{up, 6},
|
|
{forward, 5},
|
|
{down, 4},
|
|
{forward, 5},
|
|
{down, 8},
|
|
{down, 7},
|
|
{forward, 7},
|
|
{up, 5},
|
|
{down, 6},
|
|
{forward, 4},
|
|
{forward, 6},
|
|
{forward, 5},
|
|
{up, 4},
|
|
{down, 3},
|
|
{forward, 1},
|
|
{down, 1},
|
|
{forward, 6},
|
|
{up, 1},
|
|
{up, 1},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 1},
|
|
{down, 2},
|
|
{forward, 2},
|
|
{down, 3},
|
|
{down, 6},
|
|
{down, 5},
|
|
{down, 4},
|
|
{forward, 2},
|
|
{forward, 1},
|
|
{down, 7},
|
|
{forward, 9},
|
|
{up, 6},
|
|
{forward, 9},
|
|
{forward, 2},
|
|
{down, 1},
|
|
{forward, 9},
|
|
{forward, 4},
|
|
{down, 1},
|
|
{forward, 3},
|
|
{up, 9},
|
|
{down, 1},
|
|
{down, 3},
|
|
{down, 6},
|
|
{down, 9},
|
|
{forward, 3},
|
|
{down, 8},
|
|
{down, 3},
|
|
{forward, 5},
|
|
{forward, 1},
|
|
{forward, 5},
|
|
{forward, 2},
|
|
{up, 4},
|
|
{down, 6},
|
|
{up, 7},
|
|
{forward, 7},
|
|
{down, 9},
|
|
{forward, 6},
|
|
{down, 4},
|
|
{down, 1},
|
|
{up, 8},
|
|
{down, 4},
|
|
{forward, 7},
|
|
{forward, 5},
|
|
{down, 5},
|
|
{down, 2},
|
|
{down, 1},
|
|
{down, 4},
|
|
{up, 5},
|
|
{down, 8},
|
|
{forward, 1},
|
|
{forward, 2},
|
|
{down, 9},
|
|
{forward, 7},
|
|
{down, 8},
|
|
{forward, 5},
|
|
{forward, 7},
|
|
{forward, 2},
|
|
{down, 6},
|
|
{down, 5},
|
|
{down, 6},
|
|
{down, 7},
|
|
{forward, 2},
|
|
{up, 9},
|
|
{down, 3},
|
|
{forward, 1},
|
|
{up, 6},
|
|
{forward, 4},
|
|
{down, 3},
|
|
{up, 7},
|
|
{forward, 9},
|
|
{forward, 7},
|
|
{down, 4},
|
|
{up, 1},
|
|
{forward, 6},
|
|
{up, 4},
|
|
{down, 1},
|
|
{down, 4},
|
|
{down, 2},
|
|
{down, 5},
|
|
{down, 4},
|
|
{down, 7},
|
|
{forward, 2},
|
|
{down, 8},
|
|
{down, 8},
|
|
{forward, 9},
|
|
{forward, 3},
|
|
{down, 2},
|
|
{down, 2},
|
|
{forward, 2},
|
|
{down, 9},
|
|
{forward, 8},
|
|
{up, 8},
|
|
{down, 3},
|
|
{forward, 4},
|
|
{down, 9},
|
|
{up, 2},
|
|
{forward, 6},
|
|
{forward, 2},
|
|
{up, 6},
|
|
{up, 7},
|
|
{forward, 1},
|
|
{forward, 2},
|
|
{up, 2},
|
|
{down, 8},
|
|
{forward, 9},
|
|
{down, 7},
|
|
{forward, 1},
|
|
{down, 6},
|
|
{down, 8},
|
|
{forward, 2},
|
|
{down, 8},
|
|
{forward, 6},
|
|
{forward, 7},
|
|
{forward, 8},
|
|
{forward, 1},
|
|
{up, 8},
|
|
{down, 5},
|
|
{forward, 8},
|
|
{down, 3},
|
|
{down, 6},
|
|
{forward, 6},
|
|
{down, 4},
|
|
{down, 6},
|
|
{forward, 8},
|
|
{down, 3},
|
|
{down, 4},
|
|
{forward, 6},
|
|
{forward, 1},
|
|
{up, 1},
|
|
{up, 3},
|
|
{forward, 7},
|
|
{forward, 2},
|
|
{down, 1},
|
|
{down, 7},
|
|
{down, 3},
|
|
{down, 4},
|
|
{down, 3},
|
|
{forward, 2},
|
|
{forward, 4},
|
|
{down, 6},
|
|
{down, 2},
|
|
{forward, 3},
|
|
{down, 9},
|
|
{down, 5},
|
|
{down, 6},
|
|
{down, 7},
|
|
{down, 5},
|
|
{down, 3},
|
|
{forward, 5},
|
|
{forward, 6},
|
|
{down, 3},
|
|
{down, 1},
|
|
{up, 3},
|
|
{down, 8},
|
|
{down, 7},
|
|
{down, 5},
|
|
{up, 9},
|
|
{down, 8},
|
|
{down, 4},
|
|
{down, 2},
|
|
{forward, 4},
|
|
{forward, 9},
|
|
{forward, 1},
|
|
{forward, 7},
|
|
{down, 3},
|
|
{down, 4},
|
|
{up, 9},
|
|
{down, 6},
|
|
{forward, 9},
|
|
{down, 4},
|
|
{down, 2},
|
|
{down, 5},
|
|
{down, 3},
|
|
{forward, 2},
|
|
{forward, 9},
|
|
{forward, 3},
|
|
{down, 5},
|
|
{up, 1},
|
|
{down, 9},
|
|
{forward, 9},
|
|
{down, 7},
|
|
{forward, 6},
|
|
{down, 6},
|
|
{down, 9},
|
|
{down, 7},
|
|
{down, 8},
|
|
{down, 2},
|
|
{up, 3},
|
|
{forward, 6},
|
|
{forward, 3},
|
|
{up, 4},
|
|
{down, 6},
|
|
{down, 8},
|
|
{down, 2},
|
|
{down, 1},
|
|
{up, 9},
|
|
{down, 1},
|
|
{down, 8},
|
|
{forward, 5},
|
|
{forward, 4},
|
|
{forward, 9},
|
|
{forward, 3},
|
|
{forward, 9},
|
|
{down, 5},
|
|
{up, 9},
|
|
{down, 6},
|
|
{forward, 4},
|
|
{down, 6},
|
|
{forward, 4},
|
|
{forward, 9},
|
|
{down, 7},
|
|
{up, 9},
|
|
{up, 2},
|
|
{forward, 5},
|
|
{forward, 6},
|
|
{up, 2},
|
|
{forward, 8},
|
|
{down, 6},
|
|
{forward, 8},
|
|
{forward, 1},
|
|
{forward, 2},
|
|
{forward, 6},
|
|
{down, 3},
|
|
{up, 2},
|
|
{forward, 7},
|
|
{up, 8},
|
|
{forward, 2},
|
|
{forward, 5},
|
|
{forward, 4},
|
|
{up, 6},
|
|
{forward, 9},
|
|
{up, 8},
|
|
{down, 3},
|
|
{up, 7},
|
|
{up, 2},
|
|
{down, 2},
|
|
{up, 4},
|
|
{up, 5},
|
|
{forward, 5},
|
|
{down, 9},
|
|
{forward, 2},
|
|
{down, 1},
|
|
{down, 6},
|
|
{down, 4},
|
|
{down, 1},
|
|
{down, 1},
|
|
{forward, 4},
|
|
{forward, 7},
|
|
{down, 4},
|
|
{down, 2},
|
|
{forward, 7},
|
|
{down, 4},
|
|
{up, 1},
|
|
{up, 8},
|
|
{down, 6},
|
|
{down, 8},
|
|
{forward, 6},
|
|
{down, 8},
|
|
{up, 2},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 8},
|
|
{down, 9},
|
|
{forward, 1},
|
|
{up, 7},
|
|
{down, 5},
|
|
{up, 1},
|
|
{up, 6},
|
|
{down, 3},
|
|
{down, 4},
|
|
{down, 9},
|
|
{down, 6},
|
|
{forward, 1},
|
|
{down, 1},
|
|
{forward, 4},
|
|
{down, 4},
|
|
{down, 8},
|
|
{up, 1},
|
|
{down, 7},
|
|
{forward, 1},
|
|
{down, 6},
|
|
{down, 4},
|
|
{down, 5},
|
|
{forward, 6},
|
|
{forward, 8},
|
|
{down, 5},
|
|
{down, 5},
|
|
{up, 3},
|
|
{forward, 8},
|
|
{down, 4},
|
|
{down, 3},
|
|
{up, 1},
|
|
{up, 8},
|
|
{forward, 1},
|
|
{down, 6},
|
|
{down, 2},
|
|
{down, 6},
|
|
{down, 1},
|
|
{forward, 9},
|
|
{down, 1},
|
|
{forward, 6},
|
|
{forward, 9},
|
|
{down, 5},
|
|
{up, 4},
|
|
{down, 5},
|
|
{down, 1},
|
|
{forward, 2},
|
|
{down, 2},
|
|
{forward, 9},
|
|
{down, 3},
|
|
{forward, 7},
|
|
{forward, 8},
|
|
{forward, 5},
|
|
{down, 7},
|
|
{down, 6},
|
|
{down, 8},
|
|
{forward, 7},
|
|
{up, 7},
|
|
{forward, 6},
|
|
{forward, 3},
|
|
{down, 2},
|
|
{forward, 9},
|
|
{forward, 4},
|
|
{down, 6},
|
|
{down, 6},
|
|
{up, 9},
|
|
{down, 1},
|
|
{forward, 5},
|
|
{forward, 2},
|
|
{forward, 2},
|
|
{forward, 2},
|
|
{down, 8},
|
|
{up, 1},
|
|
{down, 4},
|
|
{forward, 3},
|
|
{down, 3},
|
|
{up, 4},
|
|
{down, 6},
|
|
{forward, 2},
|
|
{forward, 8},
|
|
{forward, 9},
|
|
{forward, 3},
|
|
{down, 4},
|
|
{forward, 2},
|
|
{forward, 5},
|
|
{down, 5},
|
|
{up, 8},
|
|
{up, 9},
|
|
{up, 3},
|
|
{forward, 9},
|
|
{forward, 3},
|
|
{forward, 3},
|
|
{forward, 8},
|
|
{forward, 2},
|
|
{forward, 7},
|
|
{down, 8},
|
|
{down, 6},
|
|
{forward, 6},
|
|
{forward, 8},
|
|
{down, 1},
|
|
{forward, 3},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 3},
|
|
{forward, 3},
|
|
{down, 3},
|
|
{down, 5},
|
|
{down, 2},
|
|
{down, 6},
|
|
{up, 2},
|
|
{up, 7},
|
|
{down, 9},
|
|
{forward, 6},
|
|
{down, 9},
|
|
{down, 8},
|
|
{up, 8},
|
|
{down, 1},
|
|
{forward, 9},
|
|
{down, 8},
|
|
{forward, 7},
|
|
{forward, 6},
|
|
{down, 5},
|
|
{down, 7},
|
|
{down, 4},
|
|
{forward, 7},
|
|
{down, 8},
|
|
{down, 9},
|
|
{down, 4},
|
|
{up, 8},
|
|
{forward, 2},
|
|
{up, 6},
|
|
{forward, 6},
|
|
{forward, 3},
|
|
{forward, 6},
|
|
{up, 9},
|
|
{forward, 1},
|
|
{down, 3},
|
|
{up, 6},
|
|
{down, 8},
|
|
{up, 4},
|
|
{up, 5},
|
|
{forward, 8},
|
|
{forward, 5},
|
|
{forward, 3},
|
|
{forward, 3},
|
|
{forward, 4},
|
|
{down, 4},
|
|
{forward, 2},
|
|
{up, 2},
|
|
{down, 7},
|
|
{down, 5},
|
|
{forward, 7},
|
|
{down, 8},
|
|
{forward, 3},
|
|
{up, 5},
|
|
{down, 4},
|
|
{down, 1},
|
|
{down, 5},
|
|
{forward, 6},
|
|
{forward, 8},
|
|
{forward, 6},
|
|
{down, 2},
|
|
{down, 7},
|
|
{forward, 6},
|
|
{forward, 2},
|
|
{forward, 7},
|
|
{down, 5},
|
|
{forward, 2},
|
|
{forward, 7},
|
|
{down, 9},
|
|
{down, 9},
|
|
{down, 4},
|
|
{down, 7},
|
|
{down, 3},
|
|
{forward, 1},
|
|
{up, 8},
|
|
{down, 7},
|
|
{forward, 2},
|
|
{forward, 4},
|
|
{up, 2},
|
|
{forward, 2},
|
|
{down, 2},
|
|
{up, 2},
|
|
{up, 9},
|
|
{forward, 1},
|
|
{down, 5},
|
|
{down, 1},
|
|
{forward, 8},
|
|
{up, 3},
|
|
{up, 4},
|
|
{down, 3},
|
|
{up, 2},
|
|
{down, 8},
|
|
{down, 6},
|
|
{down, 4},
|
|
{up, 7},
|
|
{forward, 4},
|
|
{down, 7},
|
|
{down, 4},
|
|
{up, 3},
|
|
{up, 8},
|
|
{down, 1},
|
|
{down, 7},
|
|
{forward, 1},
|
|
{down, 2},
|
|
{forward, 6},
|
|
{down, 9},
|
|
{forward, 3},
|
|
{down, 9},
|
|
{up, 5},
|
|
{up, 1},
|
|
{down, 4},
|
|
{forward, 1},
|
|
{down, 4},
|
|
{forward, 4},
|
|
{up, 4},
|
|
{forward, 7},
|
|
{down, 9},
|
|
{down, 2},
|
|
{down, 8},
|
|
{forward, 2},
|
|
{up, 3},
|
|
{forward, 2},
|
|
{down, 7},
|
|
{forward, 8},
|
|
{forward, 6},
|
|
{forward, 1},
|
|
{up, 9},
|
|
{forward, 7},
|
|
{up, 4},
|
|
{down, 4},
|
|
{down, 3},
|
|
{down, 7},
|
|
{forward, 5},
|
|
{forward, 3},
|
|
{forward, 7}
|
|
],
|
|
|
|
solve(A, D).
|
|
|
|
solve(['1'], D) ->
|
|
io:format("The solution to puzzle day2 is: ~p", [solve(1, D)]);
|
|
solve(1, D) ->
|
|
{X, Y} =
|
|
lists:foldl(fun({Dir, Dis}, {X, Y}) ->
|
|
case Dir of
|
|
'up' -> {X, Y - Dis};
|
|
'down' -> {X, Y + Dis};
|
|
'forward' -> {X + Dis, Y}
|
|
end
|
|
end,
|
|
{0, 0},
|
|
D),
|
|
X * Y;
|
|
solve(['2'], D) ->
|
|
io:format("The solution to puzzle day2 is: ~p", [solve(2, D)]);
|
|
solve(2, D) ->
|
|
{X, Y, _} =
|
|
lists:foldl(fun({Dir, Dis}, {X, Y, Aim}) ->
|
|
case Dir of
|
|
'up' -> {X, Y, Aim - Dis};
|
|
'down' -> {X, Y, Aim + Dis};
|
|
'forward' -> {X + Dis, Y + (Dis * Aim), Aim}
|
|
end
|
|
end,
|
|
{0,0,0},
|
|
D),
|
|
X * Y.
|
|
|