aboutsummaryrefslogtreecommitdiff
path: root/advent-of-code/2022/09
diff options
context:
space:
mode:
Diffstat (limited to 'advent-of-code/2022/09')
-rw-r--r--advent-of-code/2022/09/1.c91
-rw-r--r--advent-of-code/2022/09/2.c106
-rw-r--r--advent-of-code/2022/09/Makefile12
-rw-r--r--advent-of-code/2022/09/input2001
4 files changed, 0 insertions, 2210 deletions
diff --git a/advent-of-code/2022/09/1.c b/advent-of-code/2022/09/1.c
deleted file mode 100644
index e23a089..0000000
--- a/advent-of-code/2022/09/1.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <htable.h>
-#include <crc32.h>
-
-typedef struct {
- int x;
- int y;
-} Point;
-
-uint32_t point_hash(void *point) {
- return crc32(0, point, sizeof(Point));
-}
-
-bool point_eq(void *x, void *y) {
- Point *a = x, *b = y;
- return (a->x == b->x) && (a->y == b->y);
-}
-
-typedef struct {
- Point head;
- Point tail;
-} State;
-
-bool is_adjacent(Point p1, Point p2) {
- if (abs(p1.x - p2.x) <= 1 && abs(p2.y - p1.y) <= 1) {
- return true;
- }
- return false;
-}
-
-void run_impl(State *s, HTable *record, int dx, int dy) {
- Point new = {s->head.x + dx, s->head.y + dy};
- if (!is_adjacent(s->tail, new)) {
- s->tail = s->head;
- htable_insert(record , &(s->tail));
- }
- s->head = new;
-}
-
-void run(State *s, HTable *record, char direction, int step) {
- int dx, dy;
- switch (direction) {
- case 'U':
- dx = 0; dy = 1;
- break;
- case 'D':
- dx = 0; dy = -1;
- break;
- case 'L':
- dx = -1; dy = 0;
- break;
- case 'R':
- dx = 1; dy = 0;
- break;
- default:
- return;
- }
- for (int i = 0; i < step; i++) {
- run_impl(s, record, dx, dy);
- }
-}
-
-int count_htable(HTable *ht) {
- int count = 0;
- for (void *iter = htable_begin(ht);
- iter != NULL;
- iter = htable_next(ht, iter)) {
- count++;
- }
- return count;
-}
-
-int main() {
- FILE *fp = fopen("input", "r");
- State state;
- state.head = (Point){0, 0};
- state.tail = (Point){0, 0};
- char direction;
- int step;
- HTable record;
- htable_init(&record, sizeof(Point), -1, point_hash, point_eq);
- while (fscanf(fp, "%c %d", &direction, &step) != EOF) {
- run(&state, &record, direction, step);
- }
- int count = count_htable(&record);
- printf("%d\n", count);
- return 0;
-}
-
diff --git a/advent-of-code/2022/09/2.c b/advent-of-code/2022/09/2.c
deleted file mode 100644
index 7659e9b..0000000
--- a/advent-of-code/2022/09/2.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <htable.h>
-#include <crc32.h>
-
-typedef struct {
- int x;
- int y;
-} Point;
-
-uint32_t point_hash(void *point) {
- return crc32(0, point, sizeof(Point));
-}
-
-bool point_eq(void *x, void *y) {
- Point *a = x, *b = y;
- return (a->x == b->x) && (a->y == b->y);
-}
-
-typedef struct {
- Point knots[10];
-} State;
-
-bool is_adjacent(Point p1, Point p2) {
- if (abs(p1.x - p2.x) <= 1 && abs(p2.y - p1.y) <= 1) {
- return true;
- }
- return false;
-}
-
-Point catchup(Point prev, Point new) {
- int dx = new.x - prev.x;
- int dy = new.y - prev.y;
- int cx = 0, cy = 0;
- if (dx > 0) cx = 1;
- if (dx < 0) cx = -1;
- if (dy > 0) cy = 1;
- if (dy < 0) cy = -1;
- return (Point){prev.x + cx, prev.y + cy};
-}
-
-void run_impl(State *s, HTable *record, int dx, int dy) {
- s->knots[0].x += dx;
- s->knots[0].y += dy;
- for (int i = 1; i < 10; i++) {
- if (is_adjacent(s->knots[i], s->knots[i-1])) {
- continue;
- }
- s->knots[i] = catchup(s->knots[i], s->knots[i-1]);
- if (i == 9) {
- htable_insert(record , &(s->knots[i]));
- }
- }
-}
-
-void run(State *s, HTable *record, char direction, int step) {
- int dx, dy;
- switch (direction) {
- case 'U':
- dx = 0; dy = 1;
- break;
- case 'D':
- dx = 0; dy = -1;
- break;
- case 'L':
- dx = -1; dy = 0;
- break;
- case 'R':
- dx = 1; dy = 0;
- break;
- default:
- return;
- }
- for (int i = 0; i < step; i++) {
- run_impl(s, record, dx, dy);
- }
-}
-
-int count_htable(HTable *ht) {
- int count = 0;
- for (void *iter = htable_begin(ht);
- iter != NULL;
- iter = htable_next(ht, iter)) {
- Point *p = iter;
- count++;
- }
- return count;
-}
-
-int main() {
- FILE *fp = fopen("input", "r");
- State state = {0};
- char direction;
- int step;
- HTable record;
- htable_init(&record, sizeof(Point), -1, point_hash, point_eq);
- htable_insert(&record, &state.knots[9]);
- while (fscanf(fp, "%c %d", &direction, &step) != EOF) {
- run(&state, &record, direction, step);
- }
- int count = count_htable(&record);
- printf("%d\n", count);
- return 0;
-}
-
diff --git a/advent-of-code/2022/09/Makefile b/advent-of-code/2022/09/Makefile
deleted file mode 100644
index 28d6768..0000000
--- a/advent-of-code/2022/09/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-all: 1.out 2.out
-LIB=../lib/crc32.c ../lib/htable.c
-
-1.out: 1.c
- cc -g -I../lib/ $< $(LIB) -o $@
-
-2.out: 2.c
- cc -g -I../lib/ $< $(LIB) -o $@
-
-.PHONY: clean
-clean:
- -rm *.out
diff --git a/advent-of-code/2022/09/input b/advent-of-code/2022/09/input
deleted file mode 100644
index b272ede..0000000
--- a/advent-of-code/2022/09/input
+++ /dev/null
@@ -1,2001 +0,0 @@
-D 1
-L 2
-D 2
-L 1
-R 1
-D 1
-R 2
-U 1
-R 1
-D 2
-R 1
-L 2
-U 1
-D 2
-R 1
-L 2
-R 1
-U 2
-D 2
-L 1
-U 2
-R 2
-D 1
-R 2
-D 1
-U 2
-D 2
-L 1
-U 1
-R 1
-D 1
-U 1
-D 1
-U 2
-L 2
-R 1
-U 1
-R 2
-L 2
-U 2
-R 1
-L 1
-U 1
-L 2
-R 1
-D 1
-L 1
-D 2
-U 1
-D 1
-R 1
-L 2
-D 1
-R 2
-L 2
-U 1
-D 2
-R 2
-D 1
-U 1
-R 2
-D 1
-L 1
-U 2
-R 2
-D 1
-U 2
-R 1
-D 2
-R 1
-D 1
-U 2
-R 2
-U 1
-R 1
-U 1
-L 1
-U 2
-D 1
-R 2
-D 2
-R 2
-D 1
-L 2
-D 2
-L 1
-R 1
-U 1
-D 2
-L 2
-D 2
-L 1
-D 2
-R 1
-D 1
-R 2
-L 2
-R 2
-D 2
-R 1
-D 2
-R 2
-U 2
-L 2
-R 1
-U 1
-R 1
-U 1
-D 1
-U 1
-R 2
-L 1
-R 1
-D 2
-U 3
-R 1
-L 2
-D 1
-R 3
-U 1
-D 2
-R 1
-D 1
-R 2
-L 1
-R 2
-L 2
-D 3
-R 3
-D 1
-U 2
-D 2
-R 1
-D 2
-R 1
-L 3
-D 1
-L 1
-R 2
-D 3
-R 2
-D 3
-R 3
-L 2
-U 3
-D 3
-L 2
-R 3
-L 1
-U 1
-L 2
-D 2
-U 1
-D 2
-U 1
-D 2
-R 1
-U 1
-D 2
-U 1
-L 1
-R 2
-L 2
-D 3
-U 2
-L 3
-D 2
-U 1
-D 3
-L 1
-U 1
-D 2
-R 2
-U 1
-L 2
-D 3
-L 3
-D 3
-U 1
-R 1
-U 2
-D 1
-R 3
-L 1
-D 1
-U 3
-D 1
-L 2
-U 1
-L 3
-D 2
-L 2
-R 1
-L 3
-U 3
-R 3
-U 1
-R 2
-D 1
-L 3
-U 3
-D 3
-L 2
-D 1
-U 2
-D 2
-U 2
-R 3
-U 2
-L 1
-U 1
-R 2
-L 3
-D 3
-U 3
-R 1
-L 1
-U 1
-D 1
-U 2
-R 1
-D 3
-L 1
-R 3
-L 4
-D 3
-R 2
-U 3
-R 1
-L 4
-R 1
-L 3
-R 3
-U 2
-D 1
-L 3
-D 4
-U 4
-L 3
-U 4
-R 4
-L 1
-R 4
-D 1
-R 1
-L 3
-R 3
-L 1
-R 4
-D 2
-L 3
-D 2
-U 1
-R 3
-D 2
-L 3
-R 4
-L 3
-U 3
-D 3
-R 1
-D 2
-U 4
-L 1
-R 1
-L 4
-R 3
-U 1
-L 4
-R 1
-U 3
-R 1
-L 1
-U 3
-R 3
-U 2
-R 2
-L 4
-U 1
-R 1
-D 3
-L 2
-D 1
-L 3
-R 3
-D 3
-L 4
-U 2
-L 3
-U 4
-L 2
-U 2
-D 4
-L 3
-D 1
-U 2
-L 3
-R 4
-U 1
-L 4
-R 4
-L 3
-U 2
-D 4
-L 1
-R 3
-D 2
-L 3
-U 1
-L 3
-U 4
-R 2
-U 2
-R 1
-D 2
-L 4
-R 3
-D 2
-L 3
-U 3
-D 3
-L 1
-D 4
-R 3
-U 1
-R 3
-L 1
-U 3
-R 2
-D 3
-L 3
-U 3
-L 3
-D 5
-U 4
-L 5
-D 2
-R 1
-D 2
-U 5
-R 1
-U 2
-D 2
-R 4
-U 2
-L 3
-U 2
-R 5
-D 4
-L 3
-U 3
-D 1
-R 2
-L 3
-U 1
-R 5
-D 1
-U 2
-R 1
-U 3
-L 2
-U 5
-R 4
-D 5
-L 4
-D 4
-L 2
-U 4
-R 5
-L 1
-D 1
-R 2
-U 2
-D 5
-R 2
-U 4
-L 3
-D 2
-R 4
-L 1
-R 1
-L 2
-U 4
-D 4
-R 5
-D 3
-R 1
-D 4
-L 4
-U 5
-L 2
-U 2
-L 3
-R 4
-U 5
-L 4
-U 2
-D 1
-R 2
-U 4
-L 1
-U 3
-R 1
-U 5
-D 5
-U 4
-D 3
-L 3
-U 3
-D 2
-U 4
-R 3
-D 1
-U 5
-D 3
-R 1
-U 2
-R 1
-D 4
-R 4
-L 4
-U 1
-L 5
-R 3
-D 2
-U 2
-L 5
-R 1
-L 1
-U 3
-D 4
-R 5
-L 4
-D 5
-L 2
-U 1
-D 1
-U 3
-R 4
-D 4
-L 4
-U 3
-L 2
-D 2
-L 5
-U 1
-R 6
-U 4
-R 3
-D 2
-R 6
-D 2
-R 6
-L 3
-R 4
-L 3
-D 5
-U 2
-R 5
-L 5
-R 4
-U 6
-R 6
-D 1
-U 4
-D 4
-L 3
-D 2
-U 5
-R 2
-U 5
-D 2
-U 3
-R 2
-D 5
-R 2
-D 6
-R 1
-U 5
-D 2
-L 6
-U 2
-L 4
-R 6
-L 6
-D 6
-L 3
-D 5
-L 1
-R 5
-D 4
-L 4
-U 1
-R 3
-D 6
-R 6
-U 2
-R 4
-D 1
-R 4
-U 4
-L 6
-U 6
-D 6
-R 2
-D 2
-L 4
-R 6
-L 1
-U 5
-D 4
-U 4
-R 3
-U 1
-D 3
-R 6
-D 4
-U 5
-R 3
-D 5
-R 5
-D 4
-U 4
-D 3
-U 6
-L 1
-D 4
-U 6
-L 3
-R 3
-D 6
-U 4
-R 3
-L 3
-R 1
-D 6
-R 4
-U 2
-R 6
-L 3
-D 3
-L 4
-R 3
-L 4
-R 3
-U 4
-R 3
-D 4
-R 6
-D 2
-U 1
-D 2
-L 3
-D 4
-L 1
-D 5
-L 6
-U 4
-L 7
-R 6
-U 7
-R 7
-L 5
-D 1
-U 3
-R 6
-U 6
-R 2
-U 5
-R 4
-U 7
-R 1
-L 3
-D 7
-L 4
-D 6
-U 1
-L 1
-R 3
-D 2
-L 5
-R 1
-U 1
-L 1
-R 6
-L 6
-D 2
-U 3
-L 6
-R 6
-L 3
-D 3
-R 2
-L 1
-U 5
-R 6
-D 2
-L 5
-U 1
-D 4
-R 3
-L 6
-R 2
-L 4
-D 4
-R 5
-D 3
-R 2
-L 5
-U 7
-D 5
-L 3
-R 2
-D 5
-U 5
-D 2
-U 2
-L 2
-R 5
-L 2
-D 5
-R 3
-U 4
-R 4
-D 1
-L 6
-U 2
-R 7
-L 3
-U 4
-D 2
-R 5
-L 6
-R 7
-L 1
-U 5
-L 3
-U 7
-D 6
-R 3
-D 3
-U 7
-L 4
-R 2
-U 1
-L 1
-R 6
-D 5
-R 7
-U 4
-D 2
-R 2
-D 4
-L 1
-U 4
-D 2
-R 2
-D 5
-U 7
-D 1
-U 7
-R 3
-U 5
-L 1
-R 7
-L 2
-R 5
-U 5
-R 5
-D 4
-U 5
-L 7
-D 3
-R 5
-L 3
-R 1
-U 8
-L 4
-U 3
-D 4
-U 1
-L 2
-D 5
-L 5
-D 4
-U 3
-L 2
-R 3
-D 6
-L 4
-U 3
-R 1
-U 1
-D 3
-R 5
-D 4
-L 7
-U 7
-R 7
-L 6
-D 7
-U 5
-L 2
-U 4
-R 8
-L 4
-U 4
-R 5
-U 1
-R 1
-D 7
-R 6
-L 8
-R 1
-D 4
-U 5
-R 6
-L 3
-R 7
-L 4
-D 7
-U 8
-R 5
-D 5
-U 4
-L 3
-D 4
-U 1
-L 8
-R 8
-U 2
-L 5
-R 7
-D 5
-L 5
-D 3
-L 5
-U 4
-D 1
-U 6
-R 7
-D 5
-R 4
-D 6
-U 4
-L 5
-D 8
-U 5
-L 7
-D 1
-U 8
-R 3
-U 4
-R 5
-U 7
-R 6
-L 3
-U 4
-L 7
-R 5
-U 6
-L 2
-R 2
-U 7
-R 4
-D 2
-L 2
-D 6
-L 5
-D 5
-L 1
-R 5
-D 1
-U 5
-L 8
-R 3
-D 4
-R 2
-U 2
-L 5
-D 4
-U 7
-D 9
-R 9
-U 9
-R 3
-L 2
-D 8
-U 6
-L 1
-R 1
-D 4
-L 9
-R 9
-L 3
-U 4
-D 7
-U 9
-D 5
-R 8
-D 6
-R 9
-U 2
-R 2
-U 8
-R 5
-U 6
-L 8
-D 7
-L 2
-U 3
-R 3
-U 6
-L 5
-R 4
-D 6
-U 6
-R 6
-D 5
-U 5
-D 6
-L 4
-D 2
-U 6
-L 8
-U 3
-D 6
-U 1
-L 7
-D 6
-R 3
-D 7
-U 6
-D 4
-U 5
-R 3
-D 7
-L 5
-U 6
-L 6
-R 2
-D 7
-L 7
-U 5
-D 9
-R 6
-L 9
-R 1
-L 6
-U 5
-R 4
-U 7
-L 2
-U 5
-L 9
-U 3
-R 2
-L 5
-R 2
-U 6
-L 3
-D 7
-R 9
-D 3
-L 4
-R 2
-D 8
-L 6
-D 9
-L 5
-D 1
-R 8
-D 4
-U 5
-L 7
-D 2
-R 2
-L 7
-D 6
-L 7
-R 1
-D 4
-U 3
-D 3
-U 8
-R 8
-L 3
-D 8
-U 7
-R 4
-D 9
-L 3
-U 10
-L 4
-D 4
-R 7
-U 1
-L 10
-U 10
-R 9
-U 3
-L 3
-R 1
-D 10
-L 4
-U 9
-L 4
-U 7
-L 8
-R 7
-D 1
-U 3
-L 3
-U 2
-R 4
-U 5
-D 9
-L 5
-U 10
-L 2
-U 1
-L 7
-D 9
-L 8
-R 10
-D 7
-U 9
-L 4
-U 10
-L 3
-U 1
-D 1
-L 1
-D 6
-U 8
-R 8
-L 6
-U 9
-L 3
-U 6
-R 6
-U 3
-R 7
-U 2
-D 4
-L 4
-R 8
-D 3
-R 8
-U 2
-R 3
-D 6
-U 4
-R 9
-L 4
-D 4
-L 6
-R 2
-D 10
-L 7
-R 9
-L 7
-D 8
-R 2
-D 2
-U 9
-R 2
-U 1
-R 10
-U 1
-D 2
-U 10
-D 10
-U 5
-R 3
-U 5
-R 10
-L 3
-R 5
-U 5
-L 4
-D 3
-L 7
-D 3
-U 10
-R 7
-L 3
-D 2
-L 1
-D 1
-L 7
-R 2
-L 10
-D 6
-R 4
-L 8
-R 9
-D 5
-L 2
-D 4
-R 1
-L 4
-R 8
-D 5
-R 10
-D 1
-L 10
-D 11
-L 10
-R 4
-L 3
-D 1
-U 4
-L 9
-D 6
-U 2
-R 4
-L 2
-U 5
-D 1
-R 6
-L 5
-U 7
-D 2
-R 5
-D 9
-R 11
-U 9
-D 9
-R 2
-L 9
-D 4
-U 7
-L 10
-D 7
-U 4
-D 1
-U 4
-D 10
-L 8
-D 3
-L 8
-D 8
-R 7
-D 10
-R 5
-U 1
-L 11
-D 2
-L 11
-U 4
-L 8
-D 10
-U 3
-D 11
-R 10
-L 1
-D 2
-U 11
-L 4
-U 2
-L 6
-D 7
-R 10
-L 2
-D 7
-R 9
-U 6
-D 5
-R 9
-U 1
-D 3
-R 8
-D 7
-L 3
-D 8
-U 4
-D 4
-R 8
-L 7
-R 1
-D 3
-U 7
-D 4
-L 10
-R 1
-D 6
-R 1
-L 5
-D 2
-L 9
-R 1
-U 5
-D 4
-U 11
-L 6
-R 11
-D 11
-R 6
-U 9
-R 1
-L 5
-U 3
-R 10
-L 8
-R 6
-L 2
-R 8
-D 11
-L 5
-R 3
-L 1
-R 3
-L 8
-R 10
-U 2
-R 2
-D 7
-L 9
-U 2
-L 8
-D 3
-U 1
-L 11
-D 1
-U 6
-L 2
-R 7
-D 5
-R 1
-D 11
-U 12
-D 10
-L 11
-U 3
-D 10
-L 6
-U 3
-D 12
-R 4
-D 9
-R 2
-U 12
-R 11
-L 2
-R 7
-L 11
-U 12
-R 12
-U 1
-R 2
-D 8
-R 10
-U 2
-D 8
-U 8
-D 5
-U 10
-R 4
-U 8
-D 4
-R 8
-D 8
-R 2
-U 4
-L 10
-D 2
-L 10
-R 2
-D 9
-U 6
-L 2
-D 10
-L 2
-D 11
-R 11
-U 2
-L 6
-D 3
-U 3
-R 4
-U 9
-L 9
-R 8
-D 5
-L 9
-U 8
-L 11
-D 8
-R 12
-U 1
-D 1
-U 7
-L 11
-U 2
-L 12
-R 11
-U 8
-R 12
-U 11
-L 7
-U 5
-L 4
-R 4
-D 1
-U 6
-D 7
-U 5
-R 5
-U 10
-D 2
-R 9
-L 12
-D 9
-U 6
-L 11
-D 7
-L 6
-D 10
-L 9
-D 11
-R 7
-D 10
-L 1
-R 9
-D 10
-L 1
-U 1
-L 13
-R 10
-D 9
-L 9
-U 7
-L 10
-R 1
-U 12
-R 13
-U 8
-L 9
-U 5
-L 11
-D 11
-U 8
-R 2
-D 2
-R 7
-D 3
-L 3
-R 2
-L 6
-U 11
-L 6
-U 8
-L 11
-U 12
-L 13
-D 4
-L 8
-U 11
-D 9
-U 11
-D 10
-U 4
-D 9
-L 12
-D 6
-L 11
-U 11
-L 1
-D 6
-R 12
-U 9
-D 1
-L 4
-R 9
-L 13
-R 10
-D 9
-L 2
-R 3
-D 10
-L 13
-R 3
-L 8
-R 8
-L 1
-R 5
-L 12
-D 10
-R 6
-U 7
-R 11
-U 11
-R 10
-D 9
-R 12
-D 8
-U 6
-L 8
-D 6
-L 10
-R 2
-L 2
-D 12
-U 12
-R 11
-L 8
-U 2
-R 2
-L 11
-U 11
-L 7
-D 2
-U 2
-L 9
-D 4
-R 2
-U 7
-D 3
-R 1
-D 6
-U 13
-R 11
-D 1
-U 4
-R 9
-D 7
-L 12
-U 12
-L 10
-U 9
-L 1
-D 1
-U 6
-L 1
-D 13
-U 14
-L 2
-D 6
-U 8
-D 8
-L 9
-D 1
-R 11
-D 6
-L 8
-R 11
-U 4
-L 5
-R 5
-D 10
-U 10
-R 7
-D 7
-L 8
-U 9
-R 1
-L 5
-D 4
-L 13
-D 4
-R 14
-D 13
-R 9
-L 13
-R 7
-L 14
-R 12
-D 1
-U 8
-L 10
-U 7
-D 9
-U 7
-D 13
-L 1
-R 1
-D 14
-L 9
-U 5
-R 7
-U 2
-L 11
-D 5
-U 7
-D 1
-L 13
-U 14
-L 1
-D 3
-R 3
-D 1
-L 3
-U 4
-R 14
-U 11
-R 4
-L 13
-U 3
-R 8
-D 5
-U 8
-L 6
-R 14
-L 3
-D 2
-L 5
-U 11
-R 8
-L 11
-U 8
-D 11
-U 14
-R 14
-L 4
-D 10
-R 11
-U 1
-D 4
-U 11
-D 5
-L 5
-R 14
-U 12
-L 1
-D 4
-R 11
-L 5
-R 9
-U 9
-D 2
-U 12
-D 2
-R 8
-U 6
-L 11
-U 8
-L 6
-U 9
-L 5
-U 3
-D 10
-R 10
-D 6
-U 1
-R 13
-U 5
-R 8
-U 11
-L 11
-D 10
-R 11
-U 2
-D 3
-R 10
-D 2
-L 9
-R 7
-L 8
-U 1
-R 6
-L 3
-D 10
-U 14
-D 4
-U 7
-L 6
-R 8
-U 15
-D 14
-U 5
-D 15
-U 2
-D 4
-L 11
-U 8
-L 10
-U 15
-R 8
-U 14
-D 6
-R 9
-L 15
-R 9
-L 11
-R 3
-D 2
-U 10
-L 12
-D 2
-L 5
-D 1
-R 8
-U 7
-L 7
-D 7
-L 15
-D 11
-U 3
-L 4
-U 10
-L 14
-U 10
-D 10
-U 11
-D 1
-L 3
-R 11
-L 3
-U 10
-L 2
-D 8
-R 8
-L 12
-D 15
-U 10
-L 14
-R 4
-L 9
-R 11
-U 10
-R 7
-D 13
-U 11
-D 10
-R 3
-U 6
-R 9
-L 15
-R 11
-D 6
-R 14
-L 7
-D 7
-L 3
-D 13
-U 10
-R 14
-U 2
-D 4
-U 1
-R 1
-D 8
-R 12
-L 15
-R 4
-L 15
-U 13
-D 12
-L 8
-D 1
-R 3
-U 11
-R 3
-U 2
-R 4
-D 15
-U 4
-L 6
-D 6
-L 9
-D 2
-L 15
-R 5
-U 2
-R 7
-D 7
-U 15
-L 4
-D 7
-R 9
-D 11
-R 8
-L 4
-R 6
-L 11
-U 16
-L 10
-U 10
-L 11
-U 9
-R 8
-U 13
-R 13
-L 5
-R 8
-L 12
-U 11
-L 4
-D 10
-R 2
-U 13
-R 4
-L 15
-D 15
-L 15
-R 16
-L 7
-R 14
-D 5
-L 16
-U 6
-D 3
-L 13
-D 8
-L 11
-U 13
-L 9
-U 6
-L 4
-U 11
-R 1
-L 13
-R 11
-L 13
-R 13
-L 9
-D 15
-R 1
-L 15
-R 14
-L 14
-U 7
-L 1
-R 6
-D 16
-L 2
-R 12
-L 4
-D 12
-R 8
-U 9
-D 10
-R 1
-L 2
-D 5
-L 3
-R 15
-L 8
-D 1
-L 1
-D 8
-U 13
-R 1
-L 2
-D 1
-R 3
-L 6
-U 12
-L 4
-D 13
-U 2
-L 4
-D 10
-R 16
-D 1
-U 1
-L 11
-D 8
-L 12
-R 8
-L 5
-R 1
-D 12
-R 2
-D 7
-U 16
-D 11
-L 15
-R 4
-U 4
-D 4
-U 4
-L 17
-U 3
-D 8
-U 1
-L 1
-U 4
-L 7
-U 9
-L 13
-D 10
-L 2
-U 7
-L 13
-D 16
-U 6
-L 10
-D 16
-L 8
-U 10
-L 6
-U 16
-L 5
-U 4
-R 9
-D 12
-R 1
-U 14
-L 14
-R 16
-D 5
-L 16
-R 14
-U 10
-R 4
-U 9
-L 15
-D 4
-U 15
-L 11
-R 14
-L 10
-D 14
-L 10
-D 12
-R 2
-D 3
-R 1
-U 1
-L 17
-U 9
-D 13
-R 7
-D 7
-U 13
-D 1
-R 14
-U 10
-R 16
-L 17
-R 7
-D 17
-U 11
-L 2
-U 16
-L 8
-U 13
-R 17
-U 5
-L 7
-R 3
-D 17
-L 10
-U 9
-D 16
-R 3
-U 5
-L 15
-R 16
-D 11
-U 9
-L 3
-R 14
-D 4
-L 4
-U 12
-D 9
-U 10
-D 15
-L 12
-R 6
-D 4
-L 14
-D 5
-L 4
-U 7
-R 15
-D 6
-L 15
-U 14
-D 10
-L 3
-D 9
-L 15
-R 9
-U 1
-L 4
-D 15
-U 12
-D 9
-R 8
-D 14
-R 15
-D 7
-U 18
-L 5
-U 6
-L 6
-D 10
-L 18
-R 3
-L 11
-D 10
-L 13
-U 13
-L 13
-R 3
-L 1
-U 3
-D 7
-L 9
-R 6
-U 18
-R 18
-U 15
-R 9
-U 4
-R 12
-L 12
-D 6
-U 10
-D 13
-L 6
-R 13
-L 13
-D 12
-U 4
-D 15
-L 12
-D 10
-U 12
-R 8
-L 13
-D 11
-L 13
-U 12
-D 5
-U 12
-R 10
-L 9
-U 13
-R 7
-D 2
-L 6
-U 13
-D 15
-R 3
-U 4
-D 5
-L 2
-D 10
-U 7
-L 2
-D 5
-L 5
-D 11
-R 5
-U 18
-L 9
-D 8
-U 12
-R 3
-U 8
-R 14
-D 1
-R 4
-L 5
-D 10
-R 18
-D 2
-R 9
-L 14
-U 4
-R 15
-D 4
-R 2
-L 4
-U 13
-R 6
-U 18
-D 4
-U 7
-L 15
-D 1
-L 6
-D 3
-U 15
-L 17
-U 15
-R 14
-L 9
-U 5
-L 4
-U 13
-R 5
-D 17
-U 17
-L 15
-U 14
-R 5
-L 1
-R 9
-U 8
-R 15
-U 18
-L 12
-R 13
-D 15
-R 5
-L 11
-R 5
-U 12
-R 8
-L 6
-R 1
-L 10
-U 17
-L 16
-U 12
-L 14
-D 16
-U 13
-D 18
-L 5
-U 16
-L 11
-D 15
-U 2
-L 9
-D 5
-L 17
-D 17
-L 4
-D 4
-L 19
-R 6
-D 6
-U 18
-R 16
-U 12
-D 2
-L 4
-U 19
-R 6
-U 1
-D 15
-R 13
-U 18
-D 12
-L 9
-U 1
-R 13
-D 18
-L 4
-D 17
-L 9
-D 8
-U 3
-D 5
-R 7
-L 16
-U 3
-L 1
-D 13
-R 17
-D 8
-R 9
-U 17
-L 2
-U 17
-D 16
-L 8
-R 9
-D 7
-L 16
-R 10
-L 16
-D 10
-L 15
-U 17
-L 2
-U 10
-D 16
-R 1
-L 2
-D 4
-R 13
-L 12
-D 8
-U 10
-L 6
-D 14
-L 6
-D 11
-R 1
-D 10
-L 18
-D 12
-R 14
-L 3
-D 7
-L 12
-R 19
-U 5
-R 19
-D 3
-L 15
-U 13
-