From 79b32b883ba371acbbc7e5273e0b3b261a90611e Mon Sep 17 00:00:00 2001 From: dobiadi <50926840+dobiadi@users.noreply.github.com> Date: Mon, 18 Dec 2023 17:19:06 +0100 Subject: [PATCH] Day13 C --- day13/c/day13 | Bin 0 -> 16168 bytes day13/c/day13.c | 171 ++++++ day13/input.txt | 1326 ++++++++++++++++++++++++++++++++++++++++++++++ day13/sample.txt | 16 + 4 files changed, 1513 insertions(+) create mode 100755 day13/c/day13 create mode 100644 day13/c/day13.c create mode 100644 day13/input.txt create mode 100644 day13/sample.txt diff --git a/day13/c/day13 b/day13/c/day13 new file mode 100755 index 0000000000000000000000000000000000000000..a96336dcba244bf308d9e777a1fcc671acc6d7a2 GIT binary patch literal 16168 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 +#include +#include + +#define LINE_MAX_LENGTH 256 +#define MAX_PATTERNS 256 +#define min(a,b) ((a) < (b) ? (a) : (b)) + +typedef enum tile { + ASH, + ROCK, +} tile_t; + +typedef struct pattern { + tile_t map[LINE_MAX_LENGTH][LINE_MAX_LENGTH]; + int x; + int y; +} pattern_t; + +int symmetric(pattern_t *patterns, int patterns_num); + +int main() { + char *p, *buf, c; + + buf = (char *)malloc(LINE_MAX_LENGTH); + memset(buf, 0, LINE_MAX_LENGTH); + p = buf; + + pattern_t *patterns; + patterns = (pattern_t*)malloc(MAX_PATTERNS * sizeof(pattern_t)); + memset(patterns, 0, MAX_PATTERNS * sizeof(pattern_t)); + int x = 0, y = 0, patterns_num = 0; + + while ((c = getchar()) != EOF) { + *p++ = c; + if (c == '\n') { + p = buf; + + if (*p == '\n') { + patterns[patterns_num].x = x; + patterns[patterns_num].y = y; + patterns_num++; + y = 0; + memset(buf, 0, LINE_MAX_LENGTH); + continue; + } + + x = 0; + while (*p != '\n') { + switch (*p) { + case '.': + patterns[patterns_num].map[x][y] = ASH; + break; + case '#': + patterns[patterns_num].map[x][y] = ROCK; + break; + } + x++; + p++; + } + y++; + memset(buf, 0, LINE_MAX_LENGTH); + p = buf; + } + } + + int part1 = symmetric(patterns, patterns_num); + printf("%i\n", part1); + + int part2 = 0; + int symmetric_offset = 0; + for (int i = 0; i < patterns_num; i++) { + for (int j = 1; j < patterns[i].x; j++) { + int mind = min(j, patterns[i].x - j); + symmetric_offset = 0; + for (int k = 0; k < mind; k++) { + for (int l = 0; l < patterns[i].y; l++) { + if (patterns[i].map[j - k - 1][l] != patterns[i].map[j + k][l]) { + symmetric_offset++; + } + } + } + + if (symmetric_offset == 1) { + part2 += j; + break; + } + } + + if (symmetric_offset == 1) { + continue; + } + + for (int j = 1; j < patterns[i].y; j++) { + int mind = min(j, patterns[i].y - j); + symmetric_offset = 0; + for (int k = 0; k < mind; k++) { + for (int l = 0; l < patterns[i].x; l++) { + if (patterns[i].map[l][j - k - 1] != patterns[i].map[l][j + k]) { + symmetric_offset++; + } + } + } + + if (symmetric_offset == 1) { + part2 += 100 * j; + break; + } + } + } + + printf("%i\n", part2); + + free(buf); + free(patterns); +} + +int symmetric(pattern_t *patterns, int patterns_num) { + int sum = 0; + int symmetric = 1; + for (int i = 0; i < patterns_num; i++) { + for (int j = 1; j < patterns[i].x; j++) { + int mind = min(j, patterns[i].x - j); + symmetric = 1; + for (int k = 0; k < mind; k++) { + for (int l = 0; l < patterns[i].y; l++) { + if (patterns[i].map[j - k - 1][l] != patterns[i].map[j + k][l]) { + symmetric = 0; + break; + } + } + if (!symmetric) { + break; + } + } + + if (symmetric) { + sum += j; + break; + } + } + + if (symmetric) { + continue; + } + + for (int j = 1; j < patterns[i].y; j++) { + int mind = min(j, patterns[i].y - j); + symmetric = 1; + + for (int k = 0; k < mind; k++) { + for (int l = 0; l < patterns[i].x; l++) { + if (patterns[i].map[l][j - k - 1] != patterns[i].map[l][j + k]) { + symmetric = 0; + break; + } + } + if (!symmetric) { + break; + } + } + + if (symmetric) { + sum += 100 * j; + break; + } + } + } + + return sum; +} diff --git a/day13/input.txt b/day13/input.txt new file mode 100644 index 0000000..b4c9c06 --- /dev/null +++ b/day13/input.txt @@ -0,0 +1,1326 @@ +##..##..##. +######..### +.####.##.## +..........# +.####.##.## +.####....## +..##..##..# + +##.##.#.#..## +##.##.#.#...# +.#.###......# +.###.##..#..# +##.#.##....## +.#..###.###.# +.#...#...#.## +#.#.##.#...## +#.###.#.##.#. +#.#.#...####. +#.#.#...####. +#.###.#.##.#. +#.#.##.#...## + +.........#.## +...........## +..###....##.. +##.##.#..#..# +####....####. +##.####.##### +....##.#..... +##.#..##..#.# +###...##..... +##..##..###.. +......######. +###.##.#####. +...#.##.##### +##..#..#.##.# +#####..#..##. + +.#....########... +.##.....####..... +.##.....####..... +##....########... +..#..##..##..##.. +####.###.##.###.# +#.######....##### +..#.#...####...#. +....##.#.##.#.##. +#.#...##.##.##... +.#.##..##..##..## +#.##.#.#.##.#.#.# +.#.#....#..#....# +.#...###.##.###.. +##.###........### + +..###..##.. +.#.#.....## +#.##..##.#. +#.#..###..# +.#..##.##.# +.#....##..# +#.####.##.# +#.####.##.# +.#....###.# +.#..##.##.# +#.#..###..# +#.##..##.#. +.#.#.....## +..###..##.. +..###..##.. + +####..# +#...#.# +.##.#.# +.##.#.. +####... +.##.### +.##.##. +....### +.##..#. +......# +####..# +######. +####.## +####... +####... + +#####.#.. +#.#...... +#.#...... +#####.#.# +#####.#.# +#.#...... +#.#...... +#####.#.. +.#####... +#..#...## +#.#..##.. +####.#### +#...##... + +.#.##.....#.#.. +....####.##.### +#.#..#...###... +.###..#.###...# +..###.##..###.. +...#..#.....### +...#..#.....### +..###.##..###.. +.###..#.###...# +#.#..#...###... +....####.##.### +.#.##...#.#.#.. +.#.##...#.#.#.. +....####.##.### +#.#..#...###... +.###..#.###...# +..###.##..###.. + +#...... +..#.##. +##.#... +.##..#. +.##..#. +##.#... +..#.##. +#...... +#...... +..#.### +##.#... + +.##...### +......##. +.##..##.# +#..#.#..# +....#.### +#..#.#..# +.....#..# +######.#. +######.#. +.##..##.. +.##.....# +#..#..... +#..#.#... + +.#..#.###.#..## +.#..#.###.#..## +#.##..#..####.. +#.#####..#..#.. +#..#..#.#...### +..#.##.##.##.## +..#..##.#.##.## +####.##...#..#. +..#...#..#.#... +###.#.#..#...## +.#..#######..## +###.#.#.###.... +.#.....#.....## + +##.#.#..#.##.#..# +.####..##....##.. +#.##.#.##.##.##.# +#..#..#..#..#..#. +###.############# +#.##............. +...####..####..## +..#..##..####..## +#.#.#.####..####. + +#..#... +..#.##. +#####.# +#..#### +####..# +......# +....### +#..#.#. +####.## +####.## +#..#.#. + +####... +##.#... +####... +.#.#... +##.#### +##.##.. +#####.. +##.#.## +.##.... +.##.### +##..#.. +#..#### +#...#.. + +.#.##.#.. +.#....#.. +#......## +##.##.### +..####... +#.#..#.## +.##..##.. +........# +...##.... + +###.#.##...#..#.. +###.#.##...#..#.. +#....#.#.###..### +.####.#.##......# +#####.#.##.####.# +#.##....#...##... +...#.###...#..#.. +###...##..#####.. +##..#.###........ + +#....######....#. +#....#.##.#....#. +..##........##..# +.##.#..##..#.##.. +#....##..##....## +..##..####..##..# +.#..#......#..#.. + +..#..#. +#..#.#. +#..#.#. +.....#. +##..... +.####.# +.####.# + +####...##..##.. +####.####.####. +..#.#.##..####. +..#.#.##..####. +####.####.####. +####...##..##.. +.###.#.##.#.##. +####.#.##.####. +#...#.##....... +#..###.##.####. +.#...#####....# +####.###.#.##.# +.#.###.###....# +..#.##..##.##.# +#.###..#.#.##.# + +##.###..##. +.####...... +.####...... +##.###..##. +######..##. +.#.##...... +.##..#.#..# +#.#...#..#. +#.#.##..... +###.###.... +...#..#.##. + +.......#.#### +.......#.#### +#..##........ +.#...###.##.# +##.#.##.##### +#.#####...#.# +.#.###.####.# +..###....#..# +#.#.####..##. +#.#.####..##. +..###....#..# +.#.###.####.# +#.#####..##.# +##.#.##.##### +.#...###.##.# +#..##........ +.......#.#### + +#....##.### +#.#.#.#.#.. +#.#.#.#.#.. +#....##.### +#.#...#.#.# +.#......##. +.#..#.##... +....#..#..# +.###.##.##. +.###.##.##. +....#..#..# +.#.##.##... +.#......##. +#.#...#.#.# +#....##.### + +.#....#.##. +..#...#.... +####...#### +..#.####### +.##...#.... +#.###.#.... +#.###.#.... +.##...#.... +..#.####### +####...#### +..#........ +.#....#.##. +#.#.#.#.... +.#.##...... +.##..#.#..# +#..##...... +#.######..# + +.###.#.####.#.# +#..##...##...## +#..##.##..##.## +.###.#......#.# +##..##.####.##. +....##.####.##. +.#...########.. +...#...####...# +..##..........# +..##....##....# +..###.#.##...## +.#.###.#..#.### +.###...#..#...# +##.#####..##### +##..#........#. +#######.##.#### +#######.##.#### + +###...##......# +###....#......# +#..#.#.#......# +..##.##........ +#.#...#.##..##. +###...######### +.#...###.####.# +..#..#...#..#.. +..#.##.##....## + +.##..#..###.#.# +.##..##.....##. +....###.####..# +.......###..#.. +######..#.##..# +.##..#.#####.#. +.##..#.###.#.#. + +..##.##....## +#.##.#....##. +#....##.#.##. +######.#.#### +######..#.... +#....#..#..## +.#..#.####... +.####.##.#... +.####.##.#... + +#...##...#.#. +#..####..#.## +#........#..# +.#.####.#..## +..##..##..### +#.####.#.#..# +##.#..#.##.#. +...####...##. +#.######.#.## +#.##..##.#... +.##.##.##..#. +.##.##.##.... +#.#.##.#.#.## +#........#### +############. +##.####.##.## +##.####.##.## + +.#....##... +...#......# +##.##....#. +...#......# +..#.#....#. +#..##....## +###.######. +.###......# +#.#..#..#.. +..#.#....#. +..##.#..#.# +..##......# +####.####.# +#..###..### +#.###....## +..###.##.## +..###.##.## + +#.....#.#....#.#. +##....#.#....#.#. +#.##.#.###..###.# +.#.##.#..#..#..#. +###...##.####.##. +#.###.####..####. +#.#.....######... + +##.#..#.### +...####...# +###....#### +###....#### +...####...# +##.#..#.### +#.##.###.#. +..#.##.#..# +##......##. +..######... +#.#.##.#.## +#.##..##.## +..######..# + +#####.##...##...# +#..##.###.##.##.# +.##..#.#.......## +....####.#.##.##. +#..#..#..#...##.. +#..##.##.#.#.##.# +#..##.##...#.##.# + +..#.#.####.#.#. +##.####..####.# +##.#........#.# +..#....##...... +#####......#### +..#.#.####.#.#. +..#.#.#..#.#.#. +...##..##..##.. +..#.#......#.#. + +..#.###.##.## +##.#.##...### +..#####..#.## +####..####.## +##...#.#..... +.##...#.##... +####....###.. +##...###..### +..#..##..##.. +##.##.#.#..## +####.#..#.### +...###.#.#### +...#..#.##.## +##.....#..... +...########.. +#####...##... +##.#.#....#.. + +...##.##. +###.##### +..######. +##.#..... +...#.#### +##.###..# +##.#.#..# +..##.#### +..#.#.##. + +.##....##..#..# +####.#.#....##. +#.#....#..##.#. +#..#...###..#.# +#.#.###..#####. +.#...#....#...# +.#...#....#...# +#.#.###..#.###. +#..#...###..#.# +#.#....#..##.#. +####.#.#....##. +.##....##..#..# +.##....##..#..# + +..##....... +.####..###. +......###.. +......###.# +..#....#..# +##..##..#.. +.####..##.. +..##..#..#. +#....##.#.# +#....##.#.# +..##..#..#. +.####..##.. +##..##..#.. + +###.##.###### +....##....... +##..##..####. +..#.##....... +..#....#....# +#........##.. +###....###### +..#....#....# +.#.####.#..#. +#.##..##.##.# +.#.####.#..#. +.########..## +#.##..##.##.# + +###....####..#.## +##.#..#.#####.### +....##....###..## +...#..#....#.##.. +.########..#..... +..######...###### +.#..##..#..#.#..# + +#####.##.##.. +....##..#.### +.##...###.#.# +.##..#..##... +.##.#..#..#.# +#..#...###.## +....#..##..## +#####....##.# +......####... +.##...##..### +.##.####.###. +....##...##.# +....##..#...# +.##.#..####.. +####.####.... +.##..#...#.#. +.##..#...#.## + +##.#....##....# +.#.###.#..#.### +.##.#.##..##.#. +.###.##.##..#.# +..##..#.##.#..# +...#.#......#.# +.#.###......### +.##..#.#..#.#.. +...#.##....##.# +######..##..### +..#.#..####..#. +##...##.##.##.. +#.#####....#### +#.#####....#### +##...##.##.##.. +..#.#..####..#. +######..##..### + +##.##.... +###...... +....#.#.. +#..#.##.. +#..#.##.. +....#.#.. +#.#...... +##.##.... +#####..## +##..#.#.. +####.##.. + +#.#.... +#.....# +.###..# +.###..# +#.....# +#.#.... +#.##..# +#...### +##.#... +..##.## +##..#.. +..#...# +..#.... +##..#.. +..##.## + +#..#.##.....# +#..#.#....#.. +.##.###....#. +.##.###....#. +#..#.#....#.. +#..#.#......# +#..##....##.. +.##.....####. +#..##..#...#. +.##.#..#...#. +#..#..#...... +.##..#.##.#.. +.....#####.#. + +..#.#..## +###.####. +...#..##. +.....#.#. +...##...# +.....#.#. +####..... +#####.... +.....#.#. + +#..#####..# +#......###. +#......###. +#..#####..# +######..... +#.##.....## +..#####.##. +###......## +###.....### +..#####.##. +#.##.....## + +.#.....#.#. +...#.###.## +...#.###### +.#####....# +##.#..#..## +##.#..#..## +.#####....# +...#.###### +...#.###.## + +..#...... +##..#.#.# +#.#.#.#.# +#.####..# +.##...##. +.#....##. +#.####..# +#.#.#.#.# +##..#.#.# +..#...... +..#...... + +.#####.#..####. +#..#..#...####. +##.###..#..##.. +#..###..#..##.. +#..#..#...####. +.#####.#..####. +#.........####. +#.####.###.##.# +..#.###....##.. +#.#.#..####..## +#..##.##..####. +.....#.####..## +###.......####. +..#...#........ +###.#.##.###### +###..###...##.. +...#...##..##.. + +..#.##.....#.#. +.####..##..#### +.#....####....# +#...###..###... +..#.##....##.#. +..#.##....##.#. +#...###..###... + +#........##.#.### +.#.##..##.....#.. +.#.#.#.#.####..#. +.#.#.#.#.####..#. +.#.##..##.....#.. +#........##.#.##. +#.#.###.#....#... +#.#.###.#....#... +#........##.#.##. +.#.##..##.....#.. +.#.#.#.#.####..#. + +..#...##### +#.##...##.. +##...##..## +##...##..## +#.##...##.. +..#...##### +#.####.#..# +...#..###.. +#..##.##.## +#.##.#..### +.###.##.#.. +.#.#...#.## +#..###..#.. + +....#...####... +..##..##.##.##. +##..##..####..# +.#..###.#..#.## +..###.##....##. +...###..#..#..# +...#.#.######.# +..##..##.##.##. +##..#...####... + +....##.....##.#.# +#.#....#.######.. +############..### +#.##..##.#.####.. +#.##..##.#.####.. +############..### +#.#....#.######.. +....##.....##.#.# +#.#.##.#.#.#..### +#.######.##.####. +#######.##.#.#.#. +#.######.#..##.#. +..#.##.#......#.# +..#.##.#..##...#. +.##....##.##..#.. + +##..#...##...#### +##..#...##...#### +###......#....... +.##.##..##..#.##. +.#.#.#.##....#..# +##..#.#.#..##.##. +#..####...##..##. +##.#....###.##.## +.#...###.####.... + +..#.#..######..#. +..#.#..######..#. +..#..##.......#.. +...#.#.######.#.# +##...#.#....#.#.. +#.######....##### +#..####..##..#### +......#......#... +#...###.####.###. +....#.#.#..#.#.#. +#..#.###.##.###.# + +..########..# +...#.#.##.... +##.###.#..##. +###.#.#.#...# +##.##....##.# +...###.####.# +###...#.###.. +###...#.###.. +...###.####.# +##.##....##.# +###.#.#.#...# +##.###.#..### +...#.#.##.... + +##....#..#. +##.#.#####. +##.###.##.# +#...###.##. +#####..#..# +##.##.##### +..#..#####. +...#.##.#.# +...#.##.#.# +..#..#####. +##.##.##### + +.#.....#.###.###. +##..##.#.###.#.#. +##.###.#.###.#.#. +.#.....#.###.###. +..#....#.......## +...###.#.#..#...# +##.####.#.##..##. +...#.##.##...##.# +..##..#.##......# +..##..#.##......# +...#.##.##...##.# +##.####.#.##..##. +...###.#.#..#...# + +.###....##... +##....##..##. +###..##.##.## +...#..#....#. +#......####.. +.#.##...##... +.....#.####.# +#.####..##..# +#.####..##..# +.....#.####.# +.#.##...##... +#......####.. +......#....#. +###..##.##.## +##....##..##. + +...#.## +#.###.. +#...### +#...### +#.###.. +...#.## +.#.#### +#.###.# +.#..### + +#.#..#.#### +.#....#.### +########.## +.##..##.... +#......#..# +.#....#..#. +#.#..#.##.# +.######.... +.##..##..## +##....####. +##.##.###.. +#..##..#### +#......#..# +##.##.###.. +.##..##...# +.##..##...# +##.##.##... + +.#.#.####....#.#. +..#.##..##.#.##.# +##..###....###.#. +..#..#..##...#### +.##..#..####..### +.####.##...##..## +.####.##...##..## +.##..##.####..### +..#..#..##...#### +##..###....###.#. +..#.##..##.#.##.# +.#.#.####....#.#. +.#.####.#...#.### +...#.##.#.####... +...#.##.#.####... +.#.####.#...#.### +.#.#.####....#.#. + +#####.#..#.## +.##..#.###..# +......##.#### +#..#.#...#### +#..#.#...#### +......##.#### +.##..#.###.## +#####.#..#.## +#..#.#.##...# +.##....##...# +#..###..#...# +#..#..####... +########...#. +#..#.#..##### +.##..#...#..# + +#.#..##..#### +.#.#.######## +####.#....... +.......##.##. +.#..#.#...... +######...#..# +.##.####..... +.##.####..... +######..##..# +.#..#.#...... +.......##.##. + +...#.###..### +#.#####.##.## +#.#####.##.## +..##.###..### +##.####....## +...########## +#.....##..##. +.#....#....#. +..#.#..####.. +.#....#....#. +.###...####.. + +#######.#.... +#######.#.... +.####..#..##. +#....##..#.## +##..######### +..##..#####.. +...#..#.####. + +#..####.. +#..#.##.. +.....##.# +#######.# +####.###. +######... +#..#.#### +.##..#### +.##.####. +.##....## +....#.... +######.## +.##.###.# +#..#...## +....###.# +#######.# +####..#.. + +..##.#####....##. +..##.#####.#..##. +..##...#..######. +#....#.#..#.#..#. +###.#...#.##.##.# +.##..####...####. +#....###..#..##.# +....#....#.##.#.. +..#...#####.###.. +#.#......#.#.#..# +..####.#..##..##. +..#####.##...#..# +.#####..#....#... +...#...#...#.##.. +...#...#...#.##.. + +##..####...#.##.# +##..##.#...#.##.# +.####..###.#.#..# +##..#####.#...#.# +#....######..##.. +#....#..###...... +..##..##.##.#.#.. +#.##.##..#...#.## +.......##.....##. +#######.####.#..# +#.##.###.####.### +.#..#...#..#.##.. +##..##.#.####.#.. +#.##.#..#..###... +......#.#.#.#.##. +........#.####..# +..##...#.##..#... + +#.##...#. +#.#..#..# +#....##.# +.#.#...## +.#.#...## +#....##.# +#.#..#..# +#.##...#. +#...##.## +.####...# +.####...# +#...##.## +#.##...#. +#.#..#.## +#....##.# + +#####.#...#.. +#####.#...#.. +.##..###.#... +.##.#.....#.. +#.#.#.##.#..# +.###.######## +...#.###....# +.#####..#.##. +#.#...###..#. +..#.#........ +..#.#......#. +#.#...###..#. +.#####..#.##. + +#.##.#.#.## +#....##.... +.####.###.. +.####.###.. +#....##.... +#.##.###.## +######.###. +##..##....# +#.##.##.### +########..# +#....##..#. + +..###..##.. +.#.#.##..## +.#.####..## +#...####### +.####...... +#......##.. +##.....##.. +....#...... +....#...... +#...###..## +.##.##.##.# +##..#...... +#..#.###### +#.###..##.. +.#..#...... + +##.#..#..#. +#......#.#. +#.####....# +.#..#..#### +####.....## +####.....## +.#..#..#### +#.####....# +#......#.#. +##.#..#..#. +..##..#.#.. +...#.##.... +.##..##.### +###..##.### +...#.##.... + +....#..#.## +......#..## +#..######.# +#..#..#.#.. +######.#### +.##.###.#.. +.##.#.#.... +#..##...### +....#..##.. + +#.###.#.#..#. +#....###.##.. +#...#.##.##.# +.....#.#....# +##...######## +.##...##.##.# +..####..#..#. +.###...###### +.#.#.##.####. +..##......... +..##......... +.#.#.##.####. +.###...###### +..####..#..#. +.##...##.##.# +##...######## +.....#.#....# + +#...##.#....# +#..###.#....# +##.....##..## +#.#..####..## +#...#..#....# +###.#.####### +####.##.####. +####.#....... +#....##.#..#. +.##.#.###..## +#.#..#..#..#. +#.#..#..####. +..#...##....# +.##.#..##..## +####.###.##.# +.##..#....... +...##..###### + +##.#..### +##.#.#### +.##.#.### +.#.#.##.. +.#..##### +...###... +#....##.. + +.#..####..# +#...#..#... +#...#..#... +##..####..# +.###....### +....#..#... +.#.##..##.# +##.#.##.#.# +#.......... +.##.#..#.## +#..#.##.#.. +.....##.... +.#..####..# + +##.#..#.# +...####.. +..##..##. +..##..##. +###.##.## +.######## +....##... + +###.####....##. +###...#...##.## +...#.#.#...#.## +##...#....##.#. +###..###....... +......##..####. +##..######..### +##..######..### +......##..####. +###..###.#..... +##...#....##.#. + +###.####. +#....##.. +.#..#..#. +#....##.. +..##....# +#....##.. +##..####. + +#..#.######.# +.#.##......## +#.#....##.... +..#####..###. +..#...####... +....#......#. +.##...####... +.#.##.####.## +..#..##..##.. +.##...####... +#.####....### +##...######.. +#..##.#..#.## +#..##.#..#.## +##...######.. + +.........## +........#.. +##....##### +#.####.#### +..#..#..#.. +##....###.. +.#.##.#.#.. +#......##.. +#.####.#### +...##.#.... +.######.... + +.##.######.##.# +..###....###..# +#.#.##..##.#.## +###........#### +###........#### +#.#.##..##.#.## +..###....###..# +.##.######.##.# +.#.#.####.#.##. +..##########..# +.#.########.#.# +.#..#.##.#..#.. +#..#......#..#. + +.#.#..# +.###..# +..#.... +#.##..# +#.##### +..#.... +#..#### + +##..#..####..#..# +..###........###. +##..###....#.#..# +#..##.#.##.#.##.. +##..###.##.###..# +..#...##..##...#. +###.#.#....#.#.## +#.#.#.#....#.#.#. +##...#......#...# +#...#.#....#.#... +#...#.#....#.#... +##...#......#...# +#.#.#.#....#.#.#. +###.#.#....#.#.## +..#...##..##...#. + +#..##.#.# +.#...##.. +.##.#..#. +.##.#..#. +.#..###.. +#..##.#.# +.######.# +#.#..#... +#.#..#... + +.#..#.#.#..#..... +#....#.##.#...... +#....#.##.#...... +.#..#.#.#..#...#. +.#..#...#..###... +#....##.##.#..#.# +#.##.#..#..#.##.. +#....#####..##.## +#....###.######## +.####.##..##..... +..##.......#..... +######.#.#.#.#.#. +......##.###...## +.####.#.##.#.#.## +#....#..##.#..### + +#..##............ +.##.####..##..### +.##..#.#.####.#.# +......#.#....#.#. +......##########. +#..##.###..#.###. +......##.####.##. +.##.##..........# +.##..#####..##### +....#...#.##.#... +.##...#..#..#..#. + +....#.##.#.##.# +.##.##.######## +#..##.####.##.# +.##.###.#.#..#. +#####..##.#..#. +.##...#.###..## +.#...#....####. +.....##....##.. +####.####.####. +#####...##....# +......#.#..##.. +#####...##....# +####..####....# + +.#....#..#..# +.#.####.#.##. +###..#####..# +.##..##.#.... +..#..#..##### +#......#.#### +#......#..... +...##...##..# +##....##.#..# +##....##..... +#.#..#.#..##. +###..###..... +.######.##..# + +......##..# +....#.#.##. +..#.#...... +.#......##. +.###..##..# +.###..##..# +.#......##. +..#.#...... +....#.#.##. +......##..# +##.#.#.#.## +.#.###..... +####..##### + +##...#######.#.## +##..###...#.#.... +...#.####.#..#... +##.#...#.#...#### +####..#.##..##.## +....#####.#.####. +##.##..#.#.#.#... + +..#.#...#.#.##..# +.##..#...##.#.#.. +#...##.#..#..##.. +#..#.#.#..#.##### +#...##.###.#.###. +##..#.#.##...#..# +##..#.#.##.##.### +####.##.#.#...##. +.....###....###.. +#.##.#.##..#...#. +.#..#.#....###..# +#.#.####.#.#.#.#. +#.#.####.#.#...#. +##.###.##.##..... +##.###.##.##..... +#.#.####.#.#...#. +#.#.####.#.#.#.#. + +######.#.#..#.# +##..###........ +#.##.#....##... +.#..#.####..### +..##..###....## +......#........ +#....###.####.# +......#.##..##. +#.##.##...##..# +#....##.##..##. +#.##.#......... + +####.##.# +.##....#. +...#####. +...#####. +.##....#. +####.#..# +####.#..# + +.###..###.####. +###.##.####..## +#........###### +#.#....#.###### +#.##..#..###### +##.#..#.##....# +.#..##..#...... +#.#.##.#.##..## +###.##.####..## +..#.##.#...##.. +..######....... + +#...##..# +#...##..# +..######. +.#.###..# +#...####. +.#..###.. +#....#..# +#.#.#.... +####..#.# +####..#.# +#.#.#.... +#....#..# +.#..###.. +#...####. +.#.###..# +..#####.. +#...##..# + diff --git a/day13/sample.txt b/day13/sample.txt new file mode 100644 index 0000000..b056c34 --- /dev/null +++ b/day13/sample.txt @@ -0,0 +1,16 @@ +#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#. + +#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..# +