aboutsummaryrefslogtreecommitdiff
path: root/2023/11
diff options
context:
space:
mode:
Diffstat (limited to '2023/11')
-rw-r--r--2023/11/11a.c39
-rw-r--r--2023/11/11b.c39
-rw-r--r--2023/11/in.txt140
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
10uint8_t dr[N], dc[N];
11int64_t i, j, k, n, p, g[N*N][2];
12
13int 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
10uint8_t dr[N], dc[N];
11int64_t i, j, k, n, p, g[N*N][2];
12
13int 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..#.......................................................#...................#.............#...............................................

Generated with cgit - Back to sebastiano.tronto.net