diff options
Diffstat (limited to 'advent-of-code/2022/09')
| -rw-r--r-- | advent-of-code/2022/09/1.c | 91 | ||||
| -rw-r--r-- | advent-of-code/2022/09/2.c | 106 | ||||
| -rw-r--r-- | advent-of-code/2022/09/Makefile | 12 | ||||
| -rw-r--r-- | advent-of-code/2022/09/input | 2001 |
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 - |
