diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2023-12-11 15:14:47 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2023-12-11 15:14:47 +0100 |
| commit | 554ad47f09974f0131df285fda8ea50a1fdad8f5 (patch) | |
| tree | d23caeb85e7fce6290664a0ebf3c96f513efbe94 /2023/11 | |
| download | aoc-554ad47f09974f0131df285fda8ea50a1fdad8f5.tar.gz aoc-554ad47f09974f0131df285fda8ea50a1fdad8f5.zip | |
Initial commit, some solutions
Diffstat (limited to '2023/11')
| -rw-r--r-- | 2023/11/11a.c | 39 | ||||
| -rw-r--r-- | 2023/11/11b.c | 39 | ||||
| -rw-r--r-- | 2023/11/in.txt | 140 |
3 files changed, 218 insertions, 0 deletions
diff --git a/2023/11/11a.c b/2023/11/11a.c new file mode 100644 index 0000000..3b7f8fb --- /dev/null +++ b/2023/11/11a.c | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | #include <inttypes.h> | ||
| 2 | #include <stdio.h> | ||
| 3 | #include <stdlib.h> | ||
| 4 | #include <string.h> | ||
| 5 | |||
| 6 | #define N 1000 | ||
| 7 | |||
| 8 | #define ABS(a) ((a)>0 ? (a) : -(a)) | ||
| 9 | |||
| 10 | uint8_t dr[N], dc[N]; | ||
| 11 | int64_t i, j, k, n, p, g[N*N][2]; | ||
| 12 | |||
| 13 | int main() { | ||
| 14 | char line[N]; | ||
| 15 | for (i = 0; fgets(line, N, stdin) != NULL; i++) { | ||
| 16 | for (j = 0; line[j] != '\n'; j++) { | ||
| 17 | if (line[j] == '#') { | ||
| 18 | g[n][0] = i; | ||
| 19 | g[n++][1] = j; | ||
| 20 | dr[i] = dc[j] = 1; | ||
| 21 | } | ||
| 22 | } | ||
| 23 | } | ||
| 24 | |||
| 25 | for (k = 1; k < i; k++) dr[k] += dr[k-1]; | ||
| 26 | for (k = 1; k < j; k++) dc[k] += dc[k-1]; | ||
| 27 | |||
| 28 | for (i = 0; i < n; i++) { | ||
| 29 | g[i][0] += g[i][0] - dr[g[i][0]]; | ||
| 30 | g[i][1] += g[i][1] - dc[g[i][1]]; | ||
| 31 | } | ||
| 32 | |||
| 33 | for (i = 0; i < n; i++) | ||
| 34 | for (j = i+1; j < n; j++) | ||
| 35 | p += ABS(g[i][0] - g[j][0]) + ABS(g[i][1] - g[j][1]); | ||
| 36 | |||
| 37 | printf("%" PRId64 "\n", p); | ||
| 38 | return 0; | ||
| 39 | } | ||
diff --git a/2023/11/11b.c b/2023/11/11b.c new file mode 100644 index 0000000..edb0fd6 --- /dev/null +++ b/2023/11/11b.c | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | #include <inttypes.h> | ||
| 2 | #include <stdio.h> | ||
| 3 | #include <stdlib.h> | ||
| 4 | #include <string.h> | ||
| 5 | |||
| 6 | #define N 1000 | ||
| 7 | |||
| 8 | #define ABS(a) ((a)>0 ? (a) : -(a)) | ||
| 9 | |||
| 10 | uint8_t dr[N], dc[N]; | ||
| 11 | int64_t i, j, k, n, p, g[N*N][2]; | ||
| 12 | |||
| 13 | int main() { | ||
| 14 | char line[N]; | ||
| 15 | for (i = 0; fgets(line, N, stdin) != NULL; i++) { | ||
| 16 | for (j = 0; line[j] != '\n'; j++) { | ||
| 17 | if (line[j] == '#') { | ||
| 18 | g[n][0] = i; | ||
| 19 | g[n++][1] = j; | ||
| 20 | dr[i] = dc[j] = 1; | ||
| 21 | } | ||
| 22 | } | ||
| 23 | } | ||
| 24 | |||
| 25 | for (k = 1; k < i; k++) dr[k] += dr[k-1]; | ||
| 26 | for (k = 1; k < j; k++) dc[k] += dc[k-1]; | ||
| 27 | |||
| 28 | for (i = 0; i < n; i++) { | ||
| 29 | g[i][0] += 999999 * (g[i][0] - dr[g[i][0]]); | ||
| 30 | g[i][1] += 999999 * (g[i][1] - dc[g[i][1]]); | ||
| 31 | } | ||
| 32 | |||
| 33 | for (i = 0; i < n; i++) | ||
| 34 | for (j = i+1; j < n; j++) | ||
| 35 | p += ABS(g[i][0] - g[j][0]) + ABS(g[i][1] - g[j][1]); | ||
| 36 | |||
| 37 | printf("%" PRId64 "\n", p); | ||
| 38 | return 0; | ||
| 39 | } | ||
diff --git a/2023/11/in.txt b/2023/11/in.txt new file mode 100644 index 0000000..9406fc1 --- /dev/null +++ b/2023/11/in.txt | |||
| @@ -0,0 +1,140 @@ | |||
| 1 | ...#...........#..............#..................................................#...................#...................#.................. | ||
| 2 | ................................................................................................#..............#...........................# | ||
| 3 | ..................................#...................#.......................................................................#............. | ||
| 4 | .......................#....................................................................#............................................... | ||
| 5 | ........#........................................................#.......#.................................................................. | ||
| 6 | ..............................................#............#......................................................#......................... | ||
| 7 | ...............#.....................#...............................#...........................#..........................#............... | ||
| 8 | ....#...........................#................................................#.......................#..........................#....... | ||
| 9 | ............................................................................................................................................ | ||
| 10 | ......................................................................................#......#.............................................. | ||
| 11 | ............#.......#.......................#.....#...........#............................................................................. | ||
| 12 | .........................#.................................................................................................................. | ||
| 13 | ................................................................................................................#........................... | ||
| 14 | ..............................#.......#............................................................#.................#.................#.... | ||
| 15 | ............................................................................................#............................................... | ||
| 16 | .............................................................#.......#............#.......................#..............#.................# | ||
| 17 | .......#.................................................................................................................................... | ||
| 18 | ...............................................................................................................................#............ | ||
| 19 | ...............#............#......#...........................................#.......#.................................................... | ||
| 20 | .........................................#................#.......#............................#.....#...................................... | ||
| 21 | ...................................................#...................................................................#.................... | ||
| 22 | ..............................................#.................................................................#..................#........ | ||
| 23 | ...................#.......................................................................#................................................ | ||
| 24 | .#......................................................................#................................................................... | ||
| 25 | .......................#.....#............#................#......................#.............................................#........... | ||
| 26 | ...............#....................#.......................................#................................#...........................#.. | ||
| 27 | ............................................................................................................................................ | ||
| 28 | ....................#................................................#...........................#.................#........................ | ||
| 29 | ...........#....................................#...................................#.......#.........#..................................... | ||
| 30 | ..#...................................................#..................#.................................................................# | ||
| 31 | ..................................#...............................#........................................................#................ | ||
| 32 | ..........................................................................................................#................................. | ||
| 33 | ......................................................................#.................#.......#.....................#..................... | ||
| 34 | .......................................#..........#......................................................................................... | ||
| 35 | ......#........................#..................................................#......................................................... | ||
| 36 | ....................#.................................#................................................#.................................#.. | ||
| 37 | ...........#...................................................................................................#............#............... | ||
| 38 | ...................................#.............................#.............#.................#.................................#........ | ||
| 39 | .............................#..........................................................#.................#..........#...................... | ||
| 40 | ........................#................#..................#..................................................................#............ | ||
| 41 | ...................#.....................................................#.......................................#.......................... | ||
| 42 | ...................................................#.................................#...................................#.................. | ||
| 43 | ..........#.............................................................................................#................................... | ||
| 44 | ......................................#.........................................#................#.....................................#.... | ||
| 45 | .....................................................................#..................#...................#............................... | ||
| 46 | ........................#..........................................................................................#........#............... | ||
| 47 | .#...............................................#..........................................#.........#....................................# | ||
| 48 | .............................#.............#..........#..................................................................................... | ||
| 49 | ..............#...................#..............................................#........................#................................. | ||
| 50 | ....................#.................................................#..................................................................... | ||
| 51 | .................................................................................................#................................#......... | ||
| 52 | ....................................................#............................................................#.......................... | ||
| 53 | ................#..........................................#.......#.....................#...............................#...............#.. | ||
| 54 | .....#................#..................................................................................................................... | ||
| 55 | #...............................................#............................................#.............#....................#........... | ||
| 56 | ..........#.................#.............#............#.................................................................................... | ||
| 57 | .....................................................................................#...................................................... | ||
| 58 | ..................#.................#....................................#......................#....................#...................... | ||
| 59 | .............................................................#................................................#............................. | ||
| 60 | ................................#.............#...................................#.......#................................................. | ||
| 61 | .....................................................................#.........................................................#............ | ||
| 62 | ...........#.........................................................................................#...................................... | ||
| 63 | .....................#..............................#.........................#.....................................................#....... | ||
| 64 | ..............................#.....#.......#.............................................................#................................. | ||
| 65 | .....#................................................................................#...........#.............#...........#..............# | ||
| 66 | ................#...............................................#................................................................#.......... | ||
| 67 | #...........................................................................................#........................#...................... | ||
| 68 | ..........................#.....#........................................................................................................... | ||
| 69 | .........................................................#................#.............................................................#... | ||
| 70 | ......#............................................................................#........................................................ | ||
| 71 | .........................................#.........................................................#..........#............................. | ||
| 72 | .....................#....................................................................#...............................#................. | ||
| 73 | ..................................................................................................................................#......... | ||
| 74 | ............#......................#.............................#.......#.................................................................. | ||
| 75 | ...........................................................#...................#.............#........#....................................# | ||
| 76 | #.......................................#........#..............................................................#........................... | ||
| 77 | .................#..................................................................#....................................................... | ||
| 78 | ......................................................................................................................#.................#... | ||
| 79 | ............................................................................................................................................ | ||
| 80 | ................................................................#.............................................#............................. | ||
| 81 | ......#.........................#........#............................#.........................................................#........... | ||
| 82 | ............................................................................................................................................ | ||
| 83 | .....................................................#.............................................#........................................ | ||
| 84 | .............#..........#.................................#........#........................................................................ | ||
| 85 | ...................#.........................................................#.................#............#........................#...... | ||
| 86 | .............................................#.........................................#.................................................... | ||
| 87 | ............................................................................................................................................ | ||
| 88 | .#.........#..........................................#....................................#................................................ | ||
| 89 | .................#...................#...................................#...............................#.......................#.......... | ||
| 90 | .......#..............#........#...................................................................................#........................ | ||
| 91 | ................................................................#....................#...........#....................................#..... | ||
| 92 | .........................................#.............................................................................#.................... | ||
| 93 | ...#.....................#......................#............................#.............................................................. | ||
| 94 | ...................................#..................................#......................#..............................#............... | ||
| 95 | ............#......................................................................................#........................................ | ||
| 96 | ...............................#...........#................#....................#........................................................#. | ||
| 97 | ..........................................................................................................#................................. | ||
| 98 | ...........................#......................................#....................................................#............#....... | ||
| 99 | ...#.....#...............................................#................#...................#..................#.......................... | ||
| 100 | .............................................#................................................................................#............. | ||
| 101 | ...............#........#................................................................................................................... | ||
| 102 | ....................................#................#...............#.................#..........#......................................... | ||
| 103 | ..........................................#........................................................................#........................ | ||
| 104 | ...........................#.....................#....................................................#..................................... | ||
| 105 | .................................#.............................................................................................#............ | ||
| 106 | .........#.....................................................#...............................#............................................ | ||
| 107 | .............................................#............................#.............................................#................#.. | ||
| 108 | #..........................................................#........................#....................................................... | ||
| 109 | .............#.......#................................................#.......#...................#................#........................ | ||
| 110 | ..........................#................................................................................#................................ | ||
| 111 | .......................................#.......................................................................................#............ | ||
| 112 | ......................................................................................#..................................................... | ||
| 113 | .......................#.....#......................#...............................................................................#......# | ||
| 114 | ........#....................................#............#.............#...................................................#............... | ||
| 115 | .................#................................................#...........#........................................#.................... | ||
| 116 | ...........................................................................................#......#......................................... | ||
| 117 | .#....................................#.........#........................................................................................... | ||
| 118 | .......................................................#................................................#........#..............#........... | ||
| 119 | ...........#................................................................................................................................ | ||
| 120 | ..................................................................................#.............#.....................#..................... | ||
| 121 | ............................................................#..............................................#........................#....... | ||
| 122 | ..#................................#.......#..................................#............................................................. | ||
| 123 | .......................#.............................................................#.....#...............................................# | ||
| 124 | .........#..........................................#..........................................................#............................ | ||
| 125 | ................#........................................#...........................................#................................#..... | ||
| 126 | ...............................#........#.........................#.............#........................................................... | ||
| 127 | .............................................#....................................................................#.............#........... | ||
| 128 | ....................................#........................#......................#...........#.......................#................... | ||
| 129 | ...................#.............................#.......................................#.................................................. | ||
| 130 | .............#..........................................................#................................................................... | ||
| 131 | ........#..................................................................................................#................................ | ||
| 132 | ............................................................................................................................#............#.. | ||
| 133 | #........................................#......................#..................................................#................#....... | ||
| 134 | .....................#.............#.....................#............................#.........#........................................... | ||
| 135 | .....#.....................#................................................................................................................ | ||
| 136 | .........................................................................#.................................................................. | ||
| 137 | .............#...............................................#....................#..................................#........#............. | ||
| 138 | ........................#...........................#....................................................#.................................. | ||
| 139 | ........................................#........................#...............................#.............#..........#..........#...... | ||
| 140 | ..#.......................................................#...................#.............#............................................... | ||
