From 0c132acfb09ac0c55235502e3f8d2ab3957837bb Mon Sep 17 00:00:00 2001 From: dobiadi Date: Sat, 7 Dec 2024 15:25:32 +0100 Subject: [PATCH] Day6 & Day7 --- day6/c/day6 | Bin 0 -> 15792 bytes day6/c/day6.c | 175 ++++++++++ day6/input.txt | 130 ++++++++ day6/sample.txt | 10 + day7/c/day7 | Bin 0 -> 16200 bytes day7/c/day7.c | 113 +++++++ day7/input.txt | 850 ++++++++++++++++++++++++++++++++++++++++++++++++ day7/sample.txt | 9 + 8 files changed, 1287 insertions(+) create mode 100755 day6/c/day6 create mode 100644 day6/c/day6.c create mode 100644 day6/input.txt create mode 100644 day6/sample.txt create mode 100755 day7/c/day7 create mode 100644 day7/c/day7.c create mode 100644 day7/input.txt create mode 100644 day7/sample.txt diff --git a/day6/c/day6 b/day6/c/day6 new file mode 100755 index 0000000000000000000000000000000000000000..fc9bab7483780578637ea1d3bf95189f5c1b66a9 GIT binary patch literal 15792 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 grD@#<@3-jJxFN-?DPoU0yZ-VumclJH3N=OXUxw +#include +#include + +#define DIMENSION_MAX 512 +#define abs(a) ((a) < 0 ? (-(a)) : (a)) + +typedef enum { + EMPTY, + OBSTRUCTION +} tile_t; + +const int directions[][2] = { + {0, 1}, + {1, 0}, + {0, -1}, + {-1, 0}, +}; + +#define directions_len (sizeof(directions) / sizeof(directions[0])) + +int update(int pos[2], int dir[2], int* dir_idx, tile_t **map, int rows, int cols, int** visited, int* count); +void next_dir(int dir[2], int *dir_idx); + +int main() { + char c; + + + tile_t **map = calloc(DIMENSION_MAX, sizeof(map[0])); + int rows = 0, columns = 0, i = 0; + + map[rows] = calloc(DIMENSION_MAX, sizeof(map[0][0])); + + int pos[2] = { 0 }; + int dir[2] = { 0 }; + int dir_idx = 0; + int mypos[2] = { 0 }; + int mydir[2] = { 0 }; + int mydir_idx = 0; + + while ((c = getchar()) != EOF) { + switch (c) { + case '.': + map[rows][i] = EMPTY; + break; + case '#': + map[rows][i] = OBSTRUCTION; + break; + case '>': + mypos[0] = rows; + mypos[1] = i; + mydir[0] = 0; + mydir[1] = 1; + mydir_idx = 0; + break; + case '^': + pos[0] = rows; + pos[1] = i; + dir[0] = -1; + dir[1] = 0; + dir_idx = 3; + break; + default: + break; + } + i++; + if (c != '\n') { + continue; + } + columns = i - 1; + + rows++; + map[rows] = calloc(DIMENSION_MAX, sizeof(map[0][0])); + i = 0; + } + + int **visited = calloc(rows, sizeof(visited[0])); + for (i = 0; i < columns; i++) { + visited[i] = calloc(columns, sizeof(visited[0][0])); + } + + int start[5] = {pos[0], pos[1], dir[0], dir[1], dir_idx}; + int move_count = 0; + while (update(pos, dir, &dir_idx, map, rows, columns, visited, &move_count)); + + int count = 0; + for (i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + count += visited[i][j]; + } + } + + int count2 = 0; + for (i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + if (map[i][j] == EMPTY && visited[i][j] && !(i == start[0] && j == start[1])) { + int **tmp = calloc(rows, sizeof(tmp[0])); + for (int k = 0; k < rows; k++) { + tmp[k] = calloc(columns, sizeof(tmp[0][0])); + } + pos[0] = start[0]; + pos[1] = start[1]; + dir[0] = start[2]; + dir[1] = start[3]; + dir_idx = start[4]; + move_count = 0; + map[i][j] = OBSTRUCTION; + int result; + while((result = update(pos, dir, &dir_idx, map, rows, columns, tmp, &move_count)) == 1); + if (result == 2) { + count2++; + } + map[i][j] = EMPTY; + for (int k = 0; k < rows; k++) { + free(tmp[k]); + } + free(tmp); + } + } + } + + for (i = 0; i < rows + 1; i++) { + free(map[i]); + } + free(map); + + + for (i = 0; i < columns; i++) { + free(visited[i]); + } + free(visited); + + printf("%i\n", count); + printf("%i\n", count2); +} + +int update(int pos[2], int dir[2], int* dir_idx, tile_t **map, int rows, int cols, int** visited, int *count) { + int y = pos[0] + dir[0]; + int x = pos[1] + dir[1]; + + // Exiting map + if (y < 0 || x < 0 || y >= rows || x >= cols) { + return 0; + } + + switch (map[y][x]) { + case OBSTRUCTION: + next_dir(dir, dir_idx); + break; + case EMPTY: + pos[0] = y; + pos[1] = x; + visited[y][x] = 1; + break; + } + (*count)++; + + // Looping + if (*count > cols * rows * 4) { + return 2; + } + + return 1; +} + +void next_dir(int dir[2], int *dir_idx) { + (*dir_idx)++; + if (*dir_idx == directions_len) { + *dir_idx = 0; + } + + dir[0] = directions[*dir_idx][0]; + dir[1] = directions[*dir_idx][1]; +} diff --git a/day6/input.txt b/day6/input.txt new file mode 100644 index 0000000..1f20b72 --- /dev/null +++ b/day6/input.txt @@ -0,0 +1,130 @@ +..........#.............................#...............#...........#....................#...........#............................ +..............................#.......#...#.....#.....#...............#.#..#.......................#............#................. +.............#...........#.#........#............#..........................#.........#.......#......#............................ +......................................................#....#..#.............#................................#...#............##.. +...............#.....#....................................#......................................................#................ +..................##............#......#...............................................................#...................#...... +.#......#...........................................................#............................#................................ +#..#.............#...............................#.....#....#.............................#....#..............................#... +#...##..........#.........................#.................................................#............#...............#........ +............#...............#..............................................#.................................#..........##........ +..............#...................#......##...#.....#....................#.......................................................# +.#.....#....#......................#...#........................................#.#.............#.........#....................... +#..#...............#........##.........#.....#..........#.....##.........................#.....#.#................................ +...............#...............................#.....#.................................................#..##...................... +......#...................#..........#...........................................#....#........................................... +...............................................#...#....##.................................................#.....#................ +.................#.........#..............................#........#...#...#...................................#.................. +...........#..#.....#...#.........................#..........#.#.............#....#...................##.......................... +.........................................#.........................#.#............#...#...##............................#......... +.....#......................................#....................................................#..............#................. +..................................................#..................#................#.............#.#..#..................#..... +............................................#.....#......................#........#..........................................#.... +.......#..........................#...#...................................#.........................#...#..........#......#....... +............#...........##........................................................................#......................#........ +#.#...............................................#........#..........#.#..#...#................................#................. +..#.........................#.#........................#....##..................................................#............#.... +.....................................................................................#...............#...........#..........#..... +....................#..........#................................#...............................................#................. +#..............#.#...........#.........#..........#..........................#......................##........#.........#......... +....#....#...............................................................................#...#...........#............#...#...#... +.......................................................##......................#...#................................#............. +.......#...........##...........................#..............#..............................#...................#......#........ +......#.........#..............................................................#........#..#..........#.......#..#...#.....#....#. +....#.............................................#........#....#..................................#.............................. +..........#......#...........#....................................#..............#.......#...#............#....................... +...........................................................................................#.......#.............................. +.#..................................................#.............................#..................#...................#........ +......#..#.#................#.....................#..................................#.............#...............#.............. +...............................#..................#........#...................................................................... +......................#..................................................................................#.........#.............. +...............................................................................................................................#.. +.......#..............#...........................................................#......................#.......................# +#...............................#..............................#.......#..............................#...#...#........#.......... +............................#....#...#.........#....#................................................................#............ +.....................#.................................................................#..#....#..................#............... +......................#.............#.............................#...................................................#........... +....#.................#.#.........##................#.....#....................................................#.............#.... +...............................#...#...................#.......................................#......#........................... +....#............................................................................................................................. +...#.......................................................................................................#............#.......#. +..#.............##.............................................................#...#............................#............#.... +......................#.......#............#........................................................#..................#......#... +...................#.............#..................#..............................#............#........#...................#.... +....................#...........#.........................................................#......#.......#...........#.....##..... +...........#.........................................#.............................#..............#..................#............ +......................#.........#...................#......#...........................................#.......................... +..#....#...#.............................#..............#.....................#............#...................................#.. +.....#.............................#....#..................................#...................#...#.............#................ +...................#...#...........#........................#.............#........................#...#.............#..........#. +...#...........#......#.......#..............#......#..........#.....#............................................................ +..#......................................................#......#...........................#...........#......#..#............... +........#............................#.#....................#...#...#......#.....#...............................................# +.............#....#........#.........................................................................................#.........#.. +....................................................................................................#............................. +..#........................#....#............................................................................#.................... +.......................................#.....#.#.......................................#......#........#.#...................#.... +.................#........#....................................#...#..#................................#.......................... +...........#.................................................................................................#.................... +......................#..................#...#.............#................##................#.......#...........#.........#..... +............#..#................#.............................................#............##..................##..........#...... +......#.#.......................#............#...........................................................#........................ +#......................................#.#......^...............................................#................................. +........#...........................................................#...............#............................................. +...#.............................................#.................#...............#.............................#...#.#.......... +....................#........#...........##.......................#.................#..................#................#......... +#................................................................................................................................. +............#.......................................................................................#.#.........#..............#.. +...............#....#............#..................................................#......##.................................#... +.............................#.........#...............#......#.......#.................#........................#........#....... +......................................................#........................................................#.................# +.................#.#...............#......................................................................................#....#.. +........#.............#......................#...........#...........#......................................#..............#...... +......................#......................#...........#.....#.....##............................................#....#......... +.............#................................................................................#..........#.....#.................. +............##...........................#.................................#..#.#....................................#............ +..............................................................................................#............................#...... +...#.............................#..#..#....................................#..............#....#................................. +.....#..........................................................#.....#......#.........#.......................................... +....##......#.....................#..........#..............#..................#.#..............#........#...........#....#....... +.....#...#.........#............#............#.............................................................#...................... +.........#...................................#...........#.....................................##.....#............#.............. +.....##.#............##.....................#..........................#.................................#........#............... +.......................#..............##...#...................................................#.........#........................ +..#........#.......#...#..##............#....................................................................#...........#.....#.. +..#.....................................................................#..............#.............#...................#........ +...........#..........#..........#.....#.................................................................#..#..................... +..........#................#........................................................##.#...............................#.#......#. +#............................................#...........................##...#.......................#.............#............. +..#............#........................................................................................................#......... +....................................................#....................#............#...............#..........................# +........................................................................#.......#.....................................#.#......... +................#..#......................#...........................................#........................................... +........................##............................................#.............##..........................#.......#....#.... +.........#.......#..............................#......#....#............#..................#...#................................. +#.........#............................#....#.#..#.........................................................##..................... +.#..##...............#....#.............................#...............#........#.......................................#......#. +...#............................................................#.....................#.................#.....#................... +...#...........#..#.............................#.....#.............................................................#............. +...#.........................#..............................................................................................##.... +.........................#...........................#.......................#...........#........................................ +.#..................................#............................................................................................. +....................................................................#...........##.....#.#.........#.....#........................ +................#...............................#........#........................................................................ +......#....#.................................#...................................#.#.........#.....#....................#......... +................#..............................#.......................#...#.....#.......#................#....................... +....................#......................................#..#...........#.#.................#...#.......................#....... +.............#..#...#............................#.#...........................................#.......................#.......... +.........#..........#.................#....................................#.#..........................................#......... +....#.............#......................................................#...........#...........................#................ +........#.#............................#...........................................#.................#..............#..........#.. +..............#..........................#............#.........#....#...#.....#.........................#....#...............##.. +...................#.........................................................#.......#........#..............#..........#......... +.#........#....#..................................#..#.#...............#............#...........#................................. +...............................................................................................#.....#....#.............#......... +...........#..........#...........................................#.........#..............#................#..........#.......... +............#.................................###..............#.#...............................................................# +......#...................................................................................#............#...#..........#.....#..... +.............#..................#...................#......#.........#..#.......................#....#................#..........# +..#....##................................#.................#...........................#.......#....#...#..........#.............. +...............................#......................................#.........#.............#......................#..........#. diff --git a/day6/sample.txt b/day6/sample.txt new file mode 100644 index 0000000..a4eb402 --- /dev/null +++ b/day6/sample.txt @@ -0,0 +1,10 @@ +....#..... +.........# +.......... +..#....... +.......#.. +.......... +.#..^..... +........#. +#......... +......#... diff --git a/day7/c/day7 b/day7/c/day7 new file mode 100755 index 0000000000000000000000000000000000000000..0a4ee67ee80a967c5d1d679d07a4622f81a05e8b GIT binary patch literal 16200 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 literal 0 HcmV?d00001 diff --git a/day7/c/day7.c b/day7/c/day7.c new file mode 100644 index 0000000..79f93fd --- /dev/null +++ b/day7/c/day7.c @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include + +#define CHARS_MAX 1024 +#define MAX_EQUATIONS 32*1024 +#define MAX_EQUATION_VALUES 128 + +typedef struct equation { + uint64_t result; + uint64_t *values; + int values_count; +} equation_t; + +int solvable(equation_t, int); + +int main() { + char *p, *buf, c; + + buf = calloc(CHARS_MAX, sizeof(char)); + p = buf; + + equation_t *equations = calloc(MAX_EQUATIONS, sizeof(equations[0])); + int equation_count = 0; + + while ((c = getchar()) != EOF) { + *p++ = c; + if (c != '\n') { + continue; + } + p = buf; + + sscanf(p, "%lu", &equations[equation_count].result); + while (*p++ != ':'); + + equations[equation_count].values = calloc(MAX_EQUATION_VALUES, sizeof(equations[0].values[0])); + do { + p++; + sscanf(p, "%lu", &equations[equation_count].values[equations[equation_count].values_count]); + equations[equation_count].values_count++; + while(*p != ' ' && *p != '\n') p++; + } while (*p != '\n'); + + memset(buf, 0, CHARS_MAX); + p = buf; + equation_count++; + } + + free(buf); + + uint64_t count = 0; + uint64_t count2 = 0; +#pragma omp parallel for + for (int i = 0; i < equation_count; i++) { + if (solvable(equations[i], 0)) +#pragma omp critical + { + count += equations[i].result; + } + if (solvable(equations[i], 1)) +#pragma omp critical + { + count2 += equations[i].result; + } + } + + for (int i = 0; i < equation_count; i++) { + free(equations[i].values); + } + free(equations); + + printf("%lu\n", count); + printf("%lu\n", count2); +} + +int solvable(equation_t equation, int concat_allowed) { + uint64_t sum = equation.values[0] + equation.values[1]; + uint64_t product = equation.values[0] * equation.values[1]; + uint64_t concat; + // Concat + char buf[128]; + sprintf(buf, "%lu%lu", equation.values[0], equation.values[1]); + sscanf(buf, "%lu", &concat); + if (equation.values_count == 2) { + return (sum == equation.result) || (product == equation.result) || (concat == equation.result); + } + + uint64_t *values_tmp = calloc(equation.values_count - 1, sizeof(values_tmp[0])); + + // Add + values_tmp[0] = sum; + memcpy(values_tmp + 1, equation.values + 2, (equation.values_count - 2) * sizeof(values_tmp[0])); + equation_t tmp = { + .result = equation.result, + .values_count = equation.values_count - 1, + .values = values_tmp, + }; + + int solvable_sum = solvable(tmp, concat_allowed); + + // Multiply + values_tmp[0] = product; + int solvable_product = solvable(tmp, concat_allowed); + + // Concat + values_tmp[0] = concat; + int solvable_concat = concat_allowed ? solvable(tmp, 1) : 0; + + free(values_tmp); + return solvable_sum || solvable_product || solvable_concat; +} diff --git a/day7/input.txt b/day7/input.txt new file mode 100644 index 0000000..0e9ad5f --- /dev/null +++ b/day7/input.txt @@ -0,0 +1,850 @@ +9738: 7 89 52 75 8 1 +866433468: 869 913 996 36 81 +26082000: 3 3 2 7 9 165 1 5 6 7 414 +186475610: 39 2 22 1 103 987 8 36 +6032: 2 5 62 5 2 9 8 8 6 6 1 364 +137870: 8 3 66 87 6 56 +1124649814: 7 995 46 2 61 6 4 34 78 +21658230055: 19 11 413 749 335 +28526964: 28 447 79 96 3 +2217604115: 42 8 33 4 5 40 1 12 +162809: 6 3 47 1 52 811 +53604232: 8 3 5 180 7 7 2 34 7 27 2 +88207: 3 5 7 8 45 8 +138064615: 1 6 5 7 9 1 176 597 6 7 +2044274537: 98 543 9 5 461 +5087: 64 45 833 476 898 +565936809: 16 9 8 35 10 5 6 136 5 4 +1204743: 21 9 16 940 12 101 5 3 +31889402: 79 723 43 8 4 +283912604: 7 6 8 7 2 8 3 6 21 6 8 829 +14638370422: 34 201 8 535 3 8 +189978880: 3 781 65 233 16 +390: 4 2 65 +2174: 716 7 3 3 2 +12538759: 146 4 8 856 71 +414039: 8 1 868 53 3 +385541: 1 2 6 973 393 8 +7177216: 71 7 6 854 360 +20797: 38 533 8 1 534 1 +3482121800: 995 3 25 164 851 +403969860760: 4 488 554 90 760 +52435488: 7 9 7 63 7 61 2 7 8 942 +16157975: 77 2 7 57 748 227 +2093: 44 4 9 8 1 1 9 9 589 3 3 1 +30018373: 853 62 55 7 9 3 9 799 +147502: 28 597 59 4 2 +1307846896: 1 955 456 9 8 3 5 944 3 +104031: 106 79 6 56 95 +14063969030: 1 7 66 83 995 6 8 8 5 9 8 +3011: 7 362 477 1 +15279681: 9 831 227 9 84 +107612098: 351 867 533 353 48 +723722: 322 52 5 43 9 2 3 6 9 4 8 +240631925315: 212 19 746 3 9 6 63 6 4 +10848: 664 2 16 2 191 +1985168140: 813 85 1 78 59 94 305 +10059931015: 9 229 29 45 109 8 +49020: 2 66 72 4 59 +3025: 4 9 64 39 1 11 5 3 4 6 7 +58975574: 824 449 14 8 222 413 +262: 5 20 86 73 3 +3443861405: 821 5 70 9 932 242 +4262808: 9 18 2 808 73 697 1 67 +1114560: 8 8 4 1 3 1 313 2 2 40 9 4 +4664545: 303 5 5 3 9 408 628 4 3 +331493: 69 262 39 8 95 +864500: 446 9 5 76 5 +9310: 5 24 9 7 35 +2021: 931 8 11 60 2 1 +161: 2 52 23 26 8 +13116902559: 989 95 4 32 9 7 2 2 3 3 3 +663987: 629 33 77 30 46 45 9 +5363: 12 8 259 46 64 73 +8784162150: 3 1 711 821 3 999 7 15 +68416656: 886 291 4 84 173 +721298: 5 3 132 216 9 9 +222645156015: 8 9 728 5 323 5 849 1 3 +17588: 69 76 57 3 83 573 +646829800: 2 3 7 6 2 9 8 57 5 985 1 8 +641: 7 85 5 33 8 +5974397: 9 9 81 42 6 36 55 97 +3761568: 5 864 5 9 2 3 1 53 8 2 9 2 +4870628286: 5 2 8 8 9 6 46 6 1 36 72 6 +45553423521: 708 45 643 84 4 517 4 +1801024: 78 9 55 22 9 1 25 64 +4200529626: 493 852 16 961 6 1 6 +363243790: 10 2 244 417 98 7 5 +10142: 36 4 58 93 30 90 4 4 6 +21934: 7 1 7 1 60 7 3 9 8 2 84 8 +1151283: 9 7 96 18 2 +223456800: 66 202 303 4 840 +19752652753: 3 27 86 3 5 64 3 9 7 5 3 +4161: 357 9 6 929 8 5 +43898481: 74 361 8 9 195 148 59 +16011850: 9 846 7 33 2 714 9 7 5 5 +5806: 34 497 1 76 421 +3590996: 1 795 2 988 8 1 +52891514: 507 2 43 8 1 30 5 8 8 +620894484: 5 360 8 6 21 9 9 2 7 453 +277902: 100 477 4 6 8 5 2 2 70 3 +43281434439639: 8 9 6 81 434 4 39 639 +1009: 1 86 8 2 4 73 5 7 168 1 4 +626068223: 83 5 921 42 39 51 2 +784868: 733 51 410 9 448 +7455282783786: 76 98 7 282 7 83 78 3 +2917455: 6 422 1 306 28 50 456 +3838042: 620 1 309 4 4 5 242 +13525486: 3 694 1 9 194 +633151928: 8 1 3 2 9 76 8 68 71 925 +36687: 8 587 208 45 548 3 1 1 +294364082: 63 988 3 5 8 7 7 1 9 3 +592232: 55 5 6 351 1 64 2 6 1 6 8 +1634560: 5 106 46 2 320 +1026: 65 905 3 55 +5976078: 7 7 8 54 583 9 9 6 5 3 7 2 +83520: 2 73 9 7 289 +279: 2 70 5 31 1 95 7 +14358894: 2 9 905 6 4 19 9 5 6 3 5 3 +1178814922: 6 2 3 86 844 213 2 7 +36754: 23 7 8 8 799 +78472: 7 68 4 993 9 8 5 2 1 +280360: 3 3 3 2 4 499 10 77 6 47 +5292787503: 6 7 908 638 87 +48787282: 843 75 13 534 43 91 +96484931: 7 269 7 732 9 +15596: 7 1 4 7 5 1 920 549 8 +20105173: 20 104 6 5 73 +590841297: 209 3 7 67 67 6 601 +15429664: 903 8 960 5 6 377 562 +99949: 558 2 4 6 8 172 533 +47704483: 7 2 9 53 2 67 40 6 2 75 +186175365: 7 28 1 3 62 928 3 +2905956810: 88 4 677 864 639 54 +13245699: 514 99 8 582 1 26 +172593013785: 6 741 912 5 6 7 64 8 2 7 +184680: 1 3 8 959 381 9 +113569: 91 312 4 1 +588594586: 286 98 313 7 3 9 6 +20333807: 54 35 228 41 806 +855660: 9 597 2 7 67 3 192 6 6 +408864816968: 1 2 62 6 7 4 2 508 9 9 6 6 +29160: 87 93 2 8 29 7 62 +143618118: 81 90 1 3 98 67 +3234: 210 11 7 62 855 +41247047777: 656 8 628 777 7 +30358785928: 358 848 3 85 840 85 +109948764: 61 42 998 72 43 +86385973: 5 7 1 360 857 44 8 7 6 8 +3098151: 273 8 373 9 4 526 1 7 4 +7859: 678 3 9 95 9 +435240020: 50 156 93 6 23 +841344883: 8 8 110 6 7 6 8 1 8 8 1 +158074710770: 8 6 4 6 654 6 79 373 9 7 +961738: 6 793 50 2 91 44 +21182: 9 596 35 5 2 +363956: 333 30 956 +624367008: 702 316 7 793 888 +1015279: 9 53 5 78 980 +142877: 5 75 6 4 1 371 5 4 4 29 +304037243: 197 5 55 513 33 3 2 +27090929: 3 1 85 1 6 4 7 832 91 4 +107117664085178: 401 7 9 60 424 85 176 +4343616842: 429 4 92 44 16 839 +244608: 3 211 4 48 8 +3163603: 52 439 287 7 6 +18096: 8 5 6 9 63 5 2 901 2 83 4 +53146: 9 8 8 9 53 306 +4660224090: 6 9 6 9 967 76 278 47 +61510631292: 161 53 7 68 9 80 9 5 1 +4885425: 75 6 11 708 3 75 +1558: 393 89 637 1 438 +253036: 240 5 850 77 6 5 3 58 +41862177: 1 8 36 6 6 8 7 1 810 72 9 +42730028: 3 9 1 66 484 754 227 +110058: 84 25 7 51 51 +1455970172: 5 515 880 8 330 4 3 20 +263829107: 78 915 3 9 6 2 616 3 +1533739892: 70 380 71 5 8 193 6 94 +69501: 49 18 50 66 9 +496742400: 7 5 411 9 8 1 8 80 5 352 +9483: 84 91 87 8 1 35 +2980118: 6 12 4 4 9 75 111 7 +19292338: 23 4 47 9 7 339 +10243347159: 16 1 5 32 836 3 4 19 5 6 +60655337668: 729 3 9 5 872 83 66 +378864: 1 4 4 3 85 8 769 3 8 8 9 6 +4184550: 769 64 5 9 85 +58504: 9 9 10 75 568 +55310: 9 9 4 6 4 47 8 127 6 1 7 5 +34172: 35 86 8 8 35 12 +167913: 4 4 91 223 13 +169725: 8 286 8 56 6 2 19 2 336 +8252: 1 65 5 2 +34569: 5 70 46 7 1 +149149800: 232 2 94 645 705 +13288800: 2 4 5 98 6 565 +226195: 1 647 349 5 8 7 4 4 2 5 8 +7594349756: 904 21 1 874 26 5 8 4 +86994: 9 888 5 348 18 +67392078: 8 2 832 3 5 9 4 5 3 3 67 2 +85857433652: 8 8 6 4 6 1 12 6 17 7 548 +1020128: 3 2 6 49 8 6 61 7 8 898 +301937019: 9 23 3 853 19 6 5 7 602 +110965286558: 1 22 4 4 710 7 21 3 12 +23506102472741: 2 9 38 2 6 2 8 8 727 4 3 +208929: 34 798 2 904 81 923 +2427104880059: 82 155 64 600 6 82 62 +5781781863: 889 9 9 810 993 99 9 +209106: 86 473 368 623 5 761 +57612502436: 991 2 319 58 425 8 +1085000: 22 4 6 5 7 614 2 625 +214090: 636 66 841 1 5 +5358320: 120 47 95 6 307 4 2 +1625: 89 17 3 46 64 +113874313: 2 2 7 315 52 4 2 3 4 79 +1277878141: 511 22 421 270 1 +37662: 42 6 191 85 7 +1484478142: 59 761 6 3 828 +11191: 25 86 20 70 +24123: 724 7 1 1 33 +980895: 5 8 2 17 3 4 4 5 8 846 2 3 +656030346: 4 315 747 697 6 +13915941125: 2 2 474 1 6 4 9 8 1 9 16 4 +71375369931875: 5 6 289 891 7 9 87 9 9 7 +81216: 9 278 6 72 4 54 8 4 2 3 +722691: 2 22 2 3 599 3 2 21 177 +497191: 6 2 5 78 8 75 55 8 6 5 6 2 +551046914761: 2 4 82 16 7 691 42 5 61 +326116: 32 242 19 42 70 +8085345: 88 667 732 23 17 8 7 1 +48758: 3 95 1 857 1 9 7 662 1 +5936: 24 3 34 4 8 581 88 8 +20595960: 9 56 1 35 12 743 +2463393168: 79 76 9 87 524 +28841300: 95 1 3 4 12 57 40 +342661733: 743 3 461 58 377 +200703438: 36 491 43 9 55 76 +36871100163: 383 8 7 3 4 77 50 2 2 8 5 +933760808: 3 4 4 746 2 7 9 4 5 970 8 +92390121: 6 73 719 134 1 3 4 8 9 9 +120930084: 56 74 8 1 778 1 396 9 +8744156: 61 7 77 792 4 7 6 7 14 9 +402269: 8 226 17 44 66 +178599: 79 52 44 675 37 +100760768: 7 7 8 85 3 8 63 540 2 8 1 +11880: 16 8 53 7 14 1 8 15 1 +936: 818 5 7 3 102 2 +11033: 4 4 8 1 9 8 26 2 84 6 947 +34080659: 552 70 9 98 53 40 2 84 +37548984: 105 7 417 982 85 149 +14058691: 9 693 80 2 1 26 93 +15437: 65 256 46 23 648 +2484: 245 6 28 +12146737: 412 67 2 440 94 +32926: 6 107 6 5 4 4 81 13 881 +21511305: 6 5 4 6 5 16 5 237 9 +9271469: 984 4 160 9 4 897 77 +7232234: 99 439 8 9 168 +4300: 29 8 9 4 86 +79692: 63 26 4 1 6 1 22 30 +3306840192: 84 890 456 576 97 1 +4035: 8 2 41 79 6 +78221152982: 77 7 7 2 2 83 6 7 1 718 4 +7746432: 96 52 4 3 8 97 97 192 2 +80605277659: 80 6 4 5 3 7 555 3 1 5 7 5 +22982400847: 96 2 375 76 1 1 3 7 2 9 +76375: 76 28 7 4 82 +9185181: 74 57 7 5 7 2 1 1 1 2 6 3 +6410: 2 342 1 598 5 +28506400: 2 20 487 70 3 50 16 1 1 +34629310075: 3 164 5 8 545 50 2 74 +16395084032096: 953 20 2 5 6 215 1 2 1 8 +5346609: 91 699 41 28 3 3 +136844612: 521 5 813 40 56 8 4 +4420438407: 2 4 6 4 4 85 28 29 9 7 99 +3113668265: 232 671 11 412 3 8 2 +175643432: 6 9 680 3 7 719 48 33 8 +1002453: 908 16 23 6 3 +1442380145: 2 8 2 84 72 41 25 3 11 6 +85252: 3 66 2 2 6 55 +1344706: 2 32 501 34 70 6 +307576642: 5 615 766 45 +59180: 760 9 76 513 1 1 3 218 +14929: 739 7 2 9 +13705: 24 81 12 7 6 1 2 5 +4707430: 41 4 495 3 1 8 68 910 7 +58665432: 1 68 77 368 3 990 8 4 +259208664: 323 9 2 8 23 47 9 17 64 +221266531: 2 978 53 5 426 +3012887: 4 44 7 961 3 8 19 +1017165449: 567 3 629 55 2 84 16 7 +19844: 6 1 443 34 41 +91377830: 1 8 2 94 8 1 31 639 8 28 +1972287: 9 1 3 4 327 9 9 5 68 364 +115226202: 2 630 10 13 49 22 7 13 +47521236: 662 4 2 9 997 144 80 4 +122472: 48 29 6 8 51 1 2 7 6 +456773347806: 922 77 444 9 55 3 3 +2012941: 35 3 258 68 1 41 +12369709: 12 6 3 7 202 9 1 6 3 9 4 6 +11930328: 94 4 73 54 34 38 +206438269783: 196 7 7 966 826 978 1 +21690: 1 3 3 15 9 6 8 696 4 3 3 3 +7896685: 5 62 8 3 6 726 7 1 6 505 +36766548227: 4 9 7 1 6 61 6 30 8 8 227 +65516433: 71 6 305 3 68 3 2 302 +195813756: 24 4 7 67 8 93 61 +1037645218: 6 3 8 9 48 64 501 20 3 3 +431840742: 4 42 476 6 10 3 2 9 36 8 +183522045: 13 257 578 713 95 +3980476750: 428 93 532 235 49 +40175: 11 30 1 2 932 97 2 +1622620: 3 333 35 4 596 993 58 +9065220018: 64 79 3 897 690 2 15 +4403242: 1 81 1 4 3 27 46 18 5 4 3 +89630044144: 291 44 292 7 145 +2771: 62 4 35 377 84 +3459345548: 390 887 4 4 91 63 1 5 +24300223: 751 92 17 883 32 63 +508447380: 916 56 236 34 6 7 +98540394: 2 1 3 521 3 71 3 2 7 4 1 +856: 27 708 2 114 3 +147779: 49 974 538 748 64 +114946989003: 75 24 5 212 5 1 30 9 77 +2320: 6 376 82 5 1 +583946: 980 595 5 89 7 742 3 +394373579: 394 37 3 57 9 +2194564139: 789 175 883 2 9 9 8 +29276400: 30 1 205 8 969 +30073160: 681 3 805 60 3 9 4 383 +125328: 373 42 8 +8354: 1 977 1 8 538 +751320: 3 9 6 1 67 3 5 4 7 1 3 30 +81738: 2 897 3 6 1 5 5 4 93 6 1 5 +416513: 9 5 27 6 5 10 +112725: 20 12 56 5 932 8 +509308: 76 67 27 81 +30379850: 1 3 8 369 7 7 7 4 6 366 7 +83225928877: 9 9 7 549 4 8 3 3 5 2 85 5 +76610: 9 2 79 653 6 1 605 3 4 5 +87795864: 4 454 743 258 8 4 +2825914182: 6 787 391 93 98 +4092023: 725 9 2 20 48 515 13 +1428849: 2 2 3 4 3 664 1 923 63 8 +18915688: 9 5 191 22 65 93 3 95 +596332802571: 9 2 680 56 87 2 57 1 +128771436: 725 292 34 49 39 76 +66469994: 36 628 699 93 2 +55331586: 75 92 99 6 81 +123784: 4 12 967 8 8 +10608222013922: 5 2 3 7 40 8 5 1 9 752 9 5 +11807: 131 2 9 +236859524001: 2 9 28 476 587 332 6 9 +29025783: 5 17 7 9 103 8 940 18 +48368280: 86 2 8 57 4 92 44 4 1 4 6 +50503: 2 3 7 7 3 8 56 99 512 52 +7080604: 8 45 6 2 4 8 6 75 5 4 4 +1013: 2 854 62 95 +133135999: 6 7 31 35 999 +79525168843: 397 1 69 225 7 2 29 44 +2053444004: 5 4 6 4 6 2 59 82 5 40 2 3 +127: 2 47 26 3 4 +17140953899: 474 5 373 70 277 +3175296479: 6 1 321 7 22 9 2 6 8 481 +32507250: 5 5 323 75 974 +82275719773: 77 8 2 951 9 288 39 3 4 +1036: 59 5 77 7 7 +9343184004: 21 642 2 28 693 +2255: 6 5 4 37 5 622 +2539446: 8 2 63 33 493 647 48 6 +113322553895: 5 313 2 2 5 72 9 362 +2998699: 867 7 8 75 532 61 +6969889: 75 2 435 9 2 68 6 33 +254008: 596 85 132 5 48 +56142119: 1 970 2 577 19 +154413: 2 17 79 23 57 +16994346: 6 540 54 9 1 4 6 576 42 +11516781: 1 1 328 92 9 87 781 +727059766: 1 71 705 97 66 +18265982: 3 6 455 69 1 41 756 5 +521158592: 732 54 8 8 5 4 206 2 8 8 +19993957885: 3 772 377 38 52 37 5 +31237544: 551 8 4 71 67 1 104 +92463520: 9 241 5 3 520 +910: 9 3 3 781 5 +2305200: 38 419 1 1 60 +26171036: 40 80 2 74 833 148 34 +826304352: 879 940 44 351 +2428: 1 5 20 908 1 +3552241: 744 682 8 46 7 7 +97769892: 535 92 5 79 3 2 845 2 6 +143444: 1 7 86 4 413 2 280 84 +3610161: 7 163 76 4 3 1 7 522 4 5 +1257122897: 2 4 92 47 80 582 91 83 +18830: 45 5 73 70 7 39 5 +227654: 3 492 622 2 2 6 9 854 +143542: 7 3 7 6 8 7 448 9 8 2 8 36 +54869: 55 997 34 +337556448: 6 6 71 2 284 8 9 +125424000: 798 6 6 104 5 50 +327636630: 90 479 76 6 32 +1582: 77 207 52 2 92 818 +1079: 53 3 2 7 9 +12608: 310 4 5 6 8 +3899: 10 20 619 6 5 +322806119: 9 7 40 9 610 1 1 4 5 3 82 +3898: 856 7 4 395 8 9 3 2 5 24 +156635: 57 3 653 19 7 69 +2805257: 5 6 16 313 77 8 +10822362: 591 41 3 437 39 57 +2392: 132 68 98 8 8 +585375: 2 8 44 2 5 51 212 1 41 5 +6246569: 4 754 1 823 1 +656322560: 87 7 7 4 487 96 32 8 2 +8267103740: 19 6 5 4 9 3 7 96 5 85 7 4 +6973967057: 993 3 243 38 1 70 55 +17528867928: 80 95 288 678 48 80 +147026546: 4 718 4 3 6 4 79 4 9 242 +16201524738: 6 50 495 37 42 371 7 +2667: 3 820 208 +1460222434798: 4 867 402 6 3 3 3 9 8 9 8 +9336: 53 3 4 8 2 7 299 1 3 9 9 +261597: 9 29 56 2 1 36 +119884: 1 4 328 6 846 6 7 436 +34138: 5 7 13 73 923 +4882909: 1 6 978 98 3 356 772 9 +38168287210: 734 52 28 60 2 9 87 23 +57495247: 7 8 1 4 951 94 54 +604800: 9 394 9 2 4 78 2 6 84 +249449988: 3 8 453 24 5 1 2 5 56 8 3 +189848: 4 482 4 759 8 19 +10276242: 626 1 5 41 4 3 +2539797551: 8 33 32 58 564 84 612 +1282112954: 4 8 818 3 5 3 3 4 4 3 5 7 +80495256: 94 6 1 881 3 54 48 +332958094560: 13 9 84 90 247 254 6 +87532: 55 55 790 7 1 574 5 48 +2128004021: 72 4 4 2 9 8 9 32 85 6 9 +2715662333: 820 5 280 9 5 448 4 4 2 +48270511: 114 611 63 11 7 274 8 +616034411: 8 9 730 8 9 2 381 4 7 83 +26253: 320 82 1 7 6 +917: 4 1 12 8 855 +10114: 146 7 7 4 7 3 8 6 805 95 +3509: 4 71 6 64 8 586 5 +234388: 15 7 8 8 761 +278046840: 361 9 1 1 32 96 5 6 4 +197355265: 36 7 7 40 6 26 8 8 96 +27545399: 982 935 30 117 182 +283618: 3 3 7 8 4 93 6 154 +3561: 3 5 48 12 3 +145841: 467 8 39 64 73 +3120385147626: 398 980 8 65 147 626 +7203169837134: 6 2 935 8 49 182 892 7 +43209: 7 473 30 3 9 +137465840: 2 445 86 4 449 +27011138372: 249 81 6 2 4 6 93 2 9 6 +17635382: 833 11 995 21 2 +323602: 6 1 4 3 5 1 2 6 749 7 25 2 +337407: 590 27 53 80 21 84 +32: 2 13 6 +1063291576: 9 689 91 3 465 2 6 256 +495: 97 3 2 1 394 +33487323: 3 1 8 3 930 2 4 66 4 7 9 4 +670885: 122 5 982 89 8 70 5 +3968744: 594 334 2 10 824 +259022824310: 94 88 1 91 8 6 6 8 62 5 +1555452: 8 6 5 39 512 8 9 +93292: 934 79 92 96 1 +585349: 499 6 2 13 22 1 7 1 12 8 +4205786: 841 5 698 9 27 7 41 3 +25110960: 88 163 100 9 58 +17101: 617 793 199 834 7 +439471282: 4 5 690 8 841 3 120 8 2 +3835: 61 655 49 2 5 +969222975: 635 6 32 6 3 5 59 525 +261738549: 3 40 6 3 73 522 332 6 +1667: 1 565 2 12 86 +13091188: 92 164 69 6 85 +37950: 17 4 3 186 4 2 +71851230: 8 7 3 87 579 3 62 8 4 +13650: 295 42 3 1 545 4 708 +143370025: 109 61 67 86 84 +3209583: 4 751 949 64 799 +1361655036: 972 8 8 47 23 70 7 3 9 4 +644098: 102 902 6 7 28 +41046216: 3 4 656 9 1 9 284 2 9 3 8 +8342: 9 14 808 9 25 +4542444: 928 37 82 562 57 +106697: 26 332 33 9 371 +277620699: 59 1 7 661 5 9 7 37 58 4 +77711: 17 43 1 49 26 +63727: 7 9 497 85 74 74 +602487131136: 283 64 3 502 251 8 11 +24287558400: 7 39 6 485 96 630 3 +55716685: 5 78 25 5 6 7 8 713 13 +104141888: 3 57 286 8 76 +72181001880: 3 936 117 453 485 +3696597216: 208 6 829 9 397 +5327039521: 495 528 237 86 +4330: 36 32 9 6 1 48 1 345 +76048: 724 36 4 5 3 +6821176: 923 5 76 86 79 +417575977: 51 7 25 69 13 6 9 +1616974: 53 32 990 43 14 2 +579012: 3 8 2 8 66 6 791 +5619: 5 933 617 44 293 +976057: 36 71 86 2 2 6 4 53 8 1 +2227262400: 9 641 55 6 70 89 5 8 6 +56015843865: 41 759 91 326 9 2 +13889: 61 4 52 576 625 +104467258: 6 3 2 890 16 2 8 2 1 6 5 5 +21100542: 5 7 7 697 5 1 9 3 1 1 45 +237321633: 6 4 37 52 3 44 428 30 +614408005661: 6 1 440 800 566 1 +551695: 10 6 2 489 693 +1779: 23 770 2 167 812 5 +225261113: 91 846 38 1 77 +16992720526: 4 7 6 7 48 1 2 602 2 4 2 9 +20830608: 9 9 2 71 6 5 98 8 2 26 9 4 +9336191: 389 4 75 8 6 185 +402: 3 9 74 3 63 +133957656: 721 66 18 67 42 +3538816: 6 5 67 2 520 343 9 19 1 +119804832: 1 851 9 93 24 7 +9488703951562: 94 8 5 3 70 3 8 7 8 1 563 +668986: 77 2 4 3 2 4 9 2 38 2 4 4 +1535059626: 19 931 849 373 9 6 37 +194942815398: 9 7 2 931 44 9 6 28 7 +16937198834: 613 614 45 8 765 71 +7843849009: 1 779 33 1 6 1 513 99 7 +40863895943: 64 65 1 8 789 993 8 1 +417343795: 8 934 18 56 1 1 995 +5726360: 2 914 954 58 66 5 22 9 +53160079278: 53 1 59 509 7 563 27 9 +31687462: 31 674 4 130 59 +412242: 92 97 4 6 541 +7767953: 29 87 63 1 26 115 +30676185: 6 51 760 89 95 +2015574366960: 2 995 3 7 5 9 9 297 84 2 +22435352: 8 779 450 19 8 +134049: 7 6 25 4 4 220 289 +6520: 7 8 77 144 677 12 6 4 +12891: 9 358 4 +8067223980: 6 57 9 7 8 7 87 4 1 6 3 3 +22575: 62 80 155 4 3 25 +1192209064: 48 76 8 46 7 66 3 8 3 9 +90: 7 30 8 45 1 +607904: 956 2 4 6 628 +12395830734176: 555 817 27 826 177 +12056400: 408 75 394 +2642040: 4 1 781 5 3 3 7 1 5 630 9 +49319103: 9 2 3 86 6 5 699 10 2 +480: 3 5 32 1 6 +27233: 5 27 838 406 8 3 +8578801826: 848 9 88 10 1 79 3 5 +392269431: 968 4 9 8 8 560 2 9 600 +1160351455105: 377 541 6 674 24 19 +9626355: 93 3 262 59 16 82 +762495554: 7 62 490 5 526 30 +21346188317: 8 712 67 5 97 245 555 +401666760: 6 7 84 79 3 873 4 2 761 +1463: 29 81 5 94 7 +22061615: 8 5 657 9 1 6 2 43 6 5 2 3 +173192044: 9 8 8 5 6 53 4 6 7 +662796: 76 969 9 +918: 2 1 500 2 1 411 +642785869: 350 7 3 3 90 1 2 9 2 70 1 +5132494014: 249 666 266 1 3 309 +399526: 79 89 1 5 71 +25564: 8 1 23 804 640 +195305113: 311 4 62 5 106 9 +1561: 8 6 270 3 607 +65217: 841 6 77 1 +3211322: 4 2 8 9 249 8 7 4 1 8 7 4 +397100: 71 751 69 7 74 +22986380: 47 68 8 899 748 +9297312713: 5 95 567 164 8 713 +22300: 26 5 158 804 3 953 +446878: 885 4 3 7 8 4 970 9 97 +859159318: 411 696 3 991 318 +94024904: 46 73 28 8 34 73 +232292880: 7 1 41 61 129 90 +2463322143: 9 2 27 3 8 900 7 22 14 2 +127075605719: 1 281 4 31 5 8 1 5 7 2 2 +85529196: 771 8 834 91 99 +2124039340: 5 679 291 776 4 79 +5312: 4 5 63 83 32 +34465823: 80 7 16 427 91 +1648947: 80 84 893 9 8 +228077526: 31 4 955 232 76 8 +659001: 4 8 877 824 2 54 453 7 +24448: 742 49 286 22 754 2 +233514679680839: 7 360 463 729 94 840 +101701: 8 98 902 96 805 +9120118163: 45 30 38 8 2 954 40 +24482228478: 6 2 95 9 3 13 6 6 8 3 7 78 +584873: 9 722 8 64 9 +25471922: 789 25 43 32 857 6 5 2 +434: 8 15 8 7 2 +633755856: 75 845 584 1 9 +2432: 87 23 93 334 4 +5847: 6 7 96 700 3 +7660950: 44 90 62 91 50 33 +30612: 7 160 9 77 48 3 +33230040: 2 21 8 2 1 511 48 77 +21414: 1 394 1 9 53 +2733: 20 1 30 32 668 +1532160956: 6 6 8 1 7 33 38 6 956 +12081726: 9 50 5 553 5 7 8 604 1 6 +6441: 50 17 21 73 17 +21826: 6 3 2 1 3 8 8 8 255 406 +9398256649710: 783 1 4 3 5 22 1 65 7 5 6 +13093164: 960 36 71 7 42 9 +11837: 229 1 7 88 7 +46266954242: 5 311 5 13 829 8 344 2 +2947697: 586 4 627 41 5 977 88 +3528: 8 3 6 238 86 5 1 81 8 1 +52348785: 9 898 595 13 97 9 9 +1200780: 6 66 3 62 973 9 2 4 60 +1077807: 502 5 42 70 908 6 519 +101412046: 518 38 644 8 78 +7070: 2 27 3 8 9 3 74 67 5 6 1 7 +70840: 113 85 1 66 8 9 73 4 7 +5613: 977 5 41 848 3 +168: 9 7 92 7 6 +269938117: 2 2 220 12 8 3 1 2 81 16 +172318528607: 89 40 3 484 8 60 5 +3362916240: 125 678 496 453 80 +130644058: 30 191 25 2 6 76 46 7 5 +6576: 14 6 1 78 24 +841126771: 1 846 91 270 5 8 99 1 1 +10024: 840 214 8 370 7 +83250: 549 9 110 4 253 2 9 5 +768852: 927 109 742 85 55 +57415: 5 574 4 5 15 +2498068: 441 236 2 4 3 8 38 62 +81666: 6 1 2 5 2 12 8 3 57 18 6 +54892: 2 49 42 408 95 +169092322242: 501 654 61 6 8 4 22 43 +601202901: 7 5 6 4 6 69 6 796 8 7 3 +132322: 6 7 4 4 4 2 4 1 89 2 4 952 +1253659: 37 232 49 47 888 65 9 +806: 76 2 86 392 129 38 83 +5266: 5 8 8 42 898 +242045646612: 6 92 580 6 1 9 9 9 2 84 +101568: 381 1 145 3 3 64 +789: 6 8 4 6 6 +6117696803: 764 7 12 1 5 40 1 4 +230756736597: 13 673 776 336 595 +309227415: 6 9 4 594 9 7 9 7 1 1 338 +919422: 2 3 15 3 383 4 4 2 4 4 1 +94703823: 804 5 565 765 24 9 3 +10111: 9 4 8 9 1 440 644 5 8 3 +11739161833: 4 5 4 9 950 89 61 83 5 +477935: 315 158 202 41 5 +1055341909: 175 890 317 6 9 +378494: 2 1 5 1 434 5 84 48 5 7 2 +1427: 45 26 20 7 +8536549343: 3 195 1 86 8 332 511 7 +27202: 5 4 13 52 81 2 +63790273: 7 301 1 7 5 9 2 9 8 2 14 +9615456: 5 1 46 57 7 4 5 6 9 4 416 +11625: 191 58 9 2 536 +37797024: 8 2 7 330 479 430 21 +122951422: 5 308 7 278 3 8 5 9 62 1 +175280970609: 8 87 34 62 857 58 11 +26779562: 4 95 541 6 4 +1074356: 54 29 4 24 674 +114024: 1 39 9 2 91 +8526945: 8 706 353 971 8 9 85 +11700937213: 8 13 63 3 424 5 842 4 9 +16646133: 4 5 4 81 270 7 41 23 3 5 +14115111422: 3 9 18 2 7 485 26 1 423 +239166053337: 797 2 2 600 3 7 5 3 334 +9120448: 651 2 18 210 3 7 4 496 +794989: 84 61 10 62 153 1 +45206: 2 5 564 79 97 +94414481: 944 14 4 77 3 +123604325: 78 91 320 73 72 8 +798311: 80 25 57 7 311 +19223300833: 7 3 1 778 7 2 1 53 3 3 8 8 +99651266: 96 5 24 7 13 95 7 346 5 +7892736896: 82 1 216 96 893 +8778568656: 86 5 32 199 4 51 60 +62889378: 4 8 5 7 489 297 8 5 36 1 +4262760: 22 9 59 8 6 145 2 9 2 1 +2970324: 9 2 873 21 5 9 23 5 9 1 +633292955: 8 78 3 9 7 266 3 7 3 82 +302592: 6 9 1 3 12 3 540 38 8 48 +2315113298: 95 829 887 41 709 +188903: 5 902 32 9 31 +1136130336235: 6 5 1 6 8 1 2 4 6 902 2 36 +2417604906: 88 20 7 7 8 6 8 3 5 6 1 4 +3300343: 211 71 30 39 14 80 3 +11179583: 699 3 455 3 7 24 5 3 5 +730698: 78 97 627 911 76 +29832111750: 68 3 4 2 86 425 3 5 9 51 +2635949132: 4 7 2 64 9 59 65 120 8 2 +1895753: 44 3 95 717 143 +353320047: 47 98 1 996 77 3 +168678899198: 9 704 97 5 128 7 20 +1470873105: 5 6 9 1 231 8 979 3 1 8 1 +1628: 72 61 14 5 829 64 +7322231677: 523 14 1 1 65 66 674 +454133364: 690 205 20 88 1 564 +1030579: 5 225 916 18 60 +36202: 9 1 4 10 724 +4443656: 99 680 8 66 9 +5722897946574: 76 753 1 8 7 94 65 74 +26861338492: 8 3 9 6 253 29 931 559 +1970145: 3 214 8 9 4 573 2 3 7 2 +9028681: 8 82 2 8 681 +1706413: 3 2 1 83 78 9 88 8 5 9 1 1 +1191373029: 84 14 24 9 63 67 +158040073: 388 7 10 40 74 +2375272056: 26 2 461 905 3 +112657658363: 101 68 95 377 458 +6905472597: 2 5 5 7 5 3 73 4 62 4 18 7 +1171450: 37 43 2 735 595 +2689574874: 5 6 8 7 86 59 841 8 26 +8053: 3 56 4 9 2 7 1 99 9 7 4 14 +3603: 209 54 96 6 7 +2957571: 70 6 99 79 389 4 +1938: 8 49 34 +519875008: 5 54 408 61 23 3 +26220: 6 1 89 6 46 +791156530: 6 17 91 9 7 6 9 4 6 117 3 +3335310: 382 873 8 23 420 +106362795: 3 92 267 55 7 +6405: 22 41 7 87 3 1 +87083105: 32 253 4 9 75 6 +209671040: 2 7 192 33 5 77 27 5 1 8 +4247868: 526 25 6 1 299 589 2 +737911: 22 3 40 90 3 27 3 +1189131780: 3 51 9 25 976 39 869 1 +1335715821: 832 8 6 34 6 7 458 5 39 +1062362112: 9 67 983 81 6 7 32 8 +475: 69 79 85 2 9 +17785111680: 5 93 34 216 868 6 +5498854: 9 1 458 8 857 +28850562: 40 2 53 83 5 2 353 26 3 +153600: 725 6 7 3 6 5 +1721979439: 7 2 2 7 901 8 9 4 1 474 7 +4652: 79 33 1 80 7 974 1 2 +46922390: 4 9 2 4 6 7 8 7 9 503 7 5 +1893698113: 189 341 28 8 114 +24739461: 6 8 909 567 43 74 +9439936: 3 4 5 97 31 789 4 7 8 8 +6976628986: 697 662 8 83 9 1 1 6 7 +79058590: 5 28 4 92 3 31 3 4 9 4 7 3 +234760: 3 4 9 52 215 8 27 3 40 +5367019847: 957 1 75 64 60 4 56 9 +115368000: 8 4 4 3 6 488 5 57 8 460 +21562739: 4 923 6 730 +1523934: 43 53 1 1 35 +183322025: 2 8 77 5 352 8 5 7 1 2 6 5 +69070400: 6 1 5 2 4 9 3 9 646 5 2 78 +254412: 7 6 80 78 74 +6199: 236 648 7 5 6 +27546885696: 5 903 7 852 92 11 31 3 +44: 9 27 8 +20538026: 959 60 92 3 95 73 279 +954516780: 3 237 68 5 6 47 408 70 +56044594: 90 38 93 51 1 62 5 +924080549867: 88 71 87 794 17 69 +2620747: 50 481 422 5 550 +28887610: 383 51 6 83 791 290 +2797131472: 47 5 5 79 8 5 62 1 47 1 +6999809: 8 57 7 496 4 49 4 253 +12713: 8 308 4 6 4 61 +42210: 8 1 50 5 3 2 7 2 721 6 5 2 +4254340: 62 3 5 363 658 74 5 +6623: 9 73 2 5 56 +630324: 1 61 9 381 75 870 +16064721343: 914 3 7 6 8 5 5 22 1 340 +393515: 2 7 28 3 629 531 575 1 +2939308: 58 294 30 7 43 4 +469224810: 97 77 218 5 210 61 +527403: 6 5 34 38 3 1 3 3 9 8 579 +509: 51 98 360 +49410751: 2 4 37 81 4 25 7 3 8 7 3 +598455927: 8 64 79 564 9 93 927 +595941354926: 8 2 6 359 13 2 3 4 919 7 +73744: 8 8 6 8 6 2 59 42 7 1 62 +595872: 90 69 503 9 72 +52650267649: 8 77 5 6 2 61 4 61 8 6 2 9 +2781768: 1 1 526 8 2 8 8 3 247 4 2 +141906: 29 12 5 5 100 92 353 +2158: 5 31 2 261 5 656 2 +335139: 7 847 7 7 8 2 141 221 7 +1894893: 2 358 639 6 67 5 7 7 33 +43096933: 21 3 2 58 87 1 3 842 7 5 +16089394097: 3 217 877 5 8 5 5 1 96 +784298: 23 24 6 2 1 5 699 7 13 +36270697401: 2 5 33 836 6 2 33 4 3 5 7 +4136028756: 1 2 175 5 123 3 7 915 6 +893375682: 71 259 844 9 3 968 82 +68965879924: 2 226 908 95 19 168 1 +2113173334: 4 6 632 3 79 13 4 3 334 +592800865: 2 4 4 2 1 721 800 86 3 +137074011: 4 4 3 2 6 6 508 80 67 5 4 +11905: 27 7 75 54 950 +51004272: 4 901 3 7 6 7 9 7 9 1 8 6 +6106112960: 61 581 6 4 7 713 8 472 +691695: 7 5 1 9 1 1 239 5 8 22 5 3 +4500: 31 7 7 4 25 +298689899800: 57 524 98 99 797 +25255: 2 52 52 +45108495: 12 45 95 3 9 877 3 +16860: 207 261 356 19 20 2 +4850440: 3 9 673 8 50 4 3 9 3 4 +7739550905: 5 7 150 49 13 45 1 44 3 +176591: 5 12 6 59 3 +1076: 5 8 304 7 9 743 +6939816179085: 770 23 48 7 901 3 85 +9215: 914 1 4 61 +6710638200: 338 3 288 995 74 70 +2053984692: 8 686 527 936 6 82 2 1 +11296375: 7 2 5 1 3 2 4 9 475 3 378 +578405610: 1 201 134 49 79 270 +7650012: 8 5 36 94 450 10 +372886477693: 3 808 9 6 5 42 544 2 +204275: 5 52 782 6 1 949 +1923785: 828 79 3 707 28 8 2 +5157: 7 5 88 4 5 +55187: 321 168 887 371 1 1 +3634: 6 8 72 42 19 +1071581: 37 1 70 3 961 580 +845299348391: 6 99 805 4 93 483 88 +733524: 4 86 2 212 7 +18058876: 4 449 9 887 7 2 +1985234559843: 5 2 8 50 6 6 73 92 6 54 4 +34723: 6 65 7 99 70 +381012: 6 5 7 463 562 70 2 58 +1021314: 44 3 599 98 9 146 +1412300: 48 334 88 827 657 +470730: 5 50 87 51 65 +1720133: 183 3 8 2 2 289 5 +134801141: 37 8 345 2 44 5 6 6 95 +6294673: 8 33 786 8 6 81 +149879601: 26 901 7 914 47 6 +489168686: 49 997 2 1 9 626 685 +213: 5 5 9 2 85 +46379: 213 210 5 845 797 2 +26349696042: 19 2 55 3 32 712 35 8 +440386892: 5 71 126 919 631 +481332668: 4 813 220 13 85 8 2 4 8 +1520658574: 5 38 4 319 9 9 4 5 70 7 2 +29417638: 8 4 9 768 19 6 7 9 7 1 4 8 +36321: 8 62 736 93 13 935 2 1 +67698600: 6 2 8 26 7 30 18 308 75 +25347629303: 7 9 3 6 907 2 4 4 9 7 6 +12947177879: 23 8 966 60 903 +1163384970: 6 35 4 12 270 4 5 22 3 +24908498259: 6 2 2 707 7 2 95 2 262 +2591904: 8 49 58 3 38 +19832123318: 4 5 91 60 1 1 5 2 331 8 +16310: 1 6 310 +219846: 7 32 8 3 8 diff --git a/day7/sample.txt b/day7/sample.txt new file mode 100644 index 0000000..fc6e099 --- /dev/null +++ b/day7/sample.txt @@ -0,0 +1,9 @@ +190: 10 19 +3267: 81 40 27 +83: 17 5 +156: 15 6 +7290: 6 8 6 15 +161011: 16 10 13 +192: 17 8 14 +21037: 9 7 18 13 +292: 11 6 16 20