tangled
alpha
login
or
join now
sharparam.com
/
advent-of-code
0
fork
atom
Code for the Advent of Code event
aoc
advent-of-code
0
fork
atom
overview
issues
pulls
pipelines
Add notes for 2024 day 24
sharparam.com
1 year ago
be7bc149
5746628b
+407
2 changed files
expand all
collapse all
unified
split
src
2024
24
manual_input
notes.txt
+340
src/2024/24/manual_input
···
1
1
+
x00: 1
2
2
+
x01: 0
3
3
+
x02: 0
4
4
+
x03: 1
5
5
+
x04: 1
6
6
+
x05: 1
7
7
+
x06: 0
8
8
+
x07: 0
9
9
+
x08: 0
10
10
+
x09: 1
11
11
+
x10: 0
12
12
+
x11: 0
13
13
+
x12: 0
14
14
+
x13: 1
15
15
+
x14: 0
16
16
+
x15: 0
17
17
+
x16: 1
18
18
+
x17: 0
19
19
+
x18: 0
20
20
+
x19: 0
21
21
+
x20: 0
22
22
+
x21: 0
23
23
+
x22: 1
24
24
+
x23: 1
25
25
+
x24: 0
26
26
+
x25: 1
27
27
+
x26: 0
28
28
+
x27: 1
29
29
+
x28: 1
30
30
+
x29: 1
31
31
+
x30: 1
32
32
+
x31: 1
33
33
+
x32: 0
34
34
+
x33: 1
35
35
+
x34: 1
36
36
+
x35: 0
37
37
+
x36: 1
38
38
+
x37: 1
39
39
+
x38: 1
40
40
+
x39: 0
41
41
+
x40: 1
42
42
+
x41: 0
43
43
+
x42: 0
44
44
+
x43: 1
45
45
+
x44: 1
46
46
+
y00: 1
47
47
+
y01: 1
48
48
+
y02: 1
49
49
+
y03: 1
50
50
+
y04: 0
51
51
+
y05: 1
52
52
+
y06: 0
53
53
+
y07: 1
54
54
+
y08: 0
55
55
+
y09: 1
56
56
+
y10: 1
57
57
+
y11: 1
58
58
+
y12: 1
59
59
+
y13: 0
60
60
+
y14: 0
61
61
+
y15: 1
62
62
+
y16: 1
63
63
+
y17: 1
64
64
+
y18: 1
65
65
+
y19: 1
66
66
+
y20: 1
67
67
+
y21: 0
68
68
+
y22: 0
69
69
+
y23: 0
70
70
+
y24: 1
71
71
+
y25: 1
72
72
+
y26: 1
73
73
+
y27: 0
74
74
+
y28: 1
75
75
+
y29: 1
76
76
+
y30: 1
77
77
+
y31: 0
78
78
+
y32: 0
79
79
+
y33: 1
80
80
+
y34: 0
81
81
+
y35: 1
82
82
+
y36: 0
83
83
+
y37: 0
84
84
+
y38: 1
85
85
+
y39: 1
86
86
+
y40: 1
87
87
+
y41: 0
88
88
+
y42: 1
89
89
+
y43: 1
90
90
+
y44: 1
91
91
+
92
92
+
dff AND ntb -> wsq
93
93
+
y28 AND x28 -> sfd
94
94
+
ttg AND brk -> bww
95
95
+
mgn AND vgd -> jvs
96
96
+
hvt XOR qvb -> z15
97
97
+
qjh OR ddk -> rpt
98
98
+
grj AND jqn -> rqr
99
99
+
x28 XOR y28 -> nbg
100
100
+
y24 AND x24 -> spw
101
101
+
y03 AND x03 -> mcf
102
102
+
pjn OR smj -> jbd
103
103
+
y07 AND x07 -> ddw
104
104
+
skk XOR qfr -> z29
105
105
+
y38 XOR x38 -> fsp
106
106
+
y41 AND x41 -> tfc
107
107
+
y37 AND x37 -> vbq
108
108
+
y27 XOR x27 -> rps
109
109
+
trr OR fsd -> vgd
110
110
+
sgn XOR hrp -> z03
111
111
+
rtq OR kcn -> dtq
112
112
+
x16 AND y16 -> fqs
113
113
+
x05 AND y05 -> tcn
114
114
+
spm XOR qnw -> z44
115
115
+
wjs OR sdr -> hbk
116
116
+
x21 AND y21 -> hvb
117
117
+
mcf OR bvk -> cjv
118
118
+
pfp XOR srt -> z23
119
119
+
dpj XOR nbg -> z28
120
120
+
tcn OR jsd -> swj
121
121
+
rgn OR mfp -> z45
122
122
+
wqv OR mkv -> dpj
123
123
+
y35 AND x35 -> fsd
124
124
+
thj XOR qnb -> z18
125
125
+
dmg OR dwj -> wpg
126
126
+
x04 AND y04 -> grm
127
127
+
y32 XOR x32 -> qrw
128
128
+
fpp AND wdv -> cpp
129
129
+
tvv XOR hbk -> z43
130
130
+
x01 XOR y01 -> dgj
131
131
+
pvw XOR gsp -> z14
132
132
+
x15 AND y15 -> stw
133
133
+
dsr OR hsd -> gmw
134
134
+
src XOR qmh -> z33
135
135
+
cdh AND wfs -> ckm
136
136
+
hwc OR rrk -> cdh
137
137
+
ptf OR stw -> vfj
138
138
+
src AND qmh -> fmn
139
139
+
srn AND vfj -> crf
140
140
+
sgh XOR wmb -> z40
141
141
+
nhk AND gmw -> cjn
142
142
+
fpp XOR wdv -> z13
143
143
+
x39 XOR y39 -> dcs
144
144
+
x22 AND y22 -> jmg
145
145
+
y29 AND x29 -> ddk
146
146
+
fsm AND rtg -> ctk
147
147
+
x41 XOR y41 -> mkb
148
148
+
x19 XOR y19 -> nhk
149
149
+
ggk OR qwq -> tgb
150
150
+
y42 AND x42 -> wjs
151
151
+
y10 XOR x10 -> dff
152
152
+
y05 XOR x05 -> sss
153
153
+
brr AND nff -> hwc
154
154
+
kpb XOR ktw -> z35
155
155
+
x40 AND y40 -> fvs
156
156
+
dtq AND vkh -> mjr
157
157
+
tfc OR rpg -> sgp
158
158
+
vfj XOR srn -> z16
159
159
+
x15 XOR y15 -> hvt
160
160
+
nnc OR rnb -> src
161
161
+
btt OR jqj -> qvb
162
162
+
hdp AND dcs -> ddp
163
163
+
y26 XOR x26 -> mbh
164
164
+
y11 XOR x11 -> brr
165
165
+
wnc OR fmn -> rtg
166
166
+
y14 XOR x14 -> pvw
167
167
+
ftw AND jbd -> wfb
168
168
+
y27 AND x27 -> mkv
169
169
+
vvj OR gjk -> sgn
170
170
+
y09 AND x09 -> gwn
171
171
+
ftw XOR jbd -> z21
172
172
+
y35 XOR x35 -> ktw
173
173
+
mbh AND khj -> krr
174
174
+
x36 AND y36 -> ksr
175
175
+
x08 AND y08 -> vmg
176
176
+
wfs XOR cdh -> z12
177
177
+
tnt AND nbs -> vhp
178
178
+
dqw XOR sgp -> z42
179
179
+
sqw AND bsc -> fns
180
180
+
mqg OR ddp -> wmb
181
181
+
brk XOR ttg -> z17
182
182
+
dff XOR ntb -> z10
183
183
+
y42 XOR x42 -> dqw
184
184
+
y02 AND x02 -> gjk
185
185
+
gqc XOR vqv -> cgr
186
186
+
npm OR wsq -> nff
187
187
+
hdp XOR dcs -> z39
188
188
+
y13 AND x13 -> dnj
189
189
+
x08 XOR y08 -> sqw
190
190
+
ksr OR jvs -> gqc
191
191
+
x43 AND y43 -> vhq
192
192
+
y12 XOR x12 -> wfs
193
193
+
gmw XOR nhk -> z19
194
194
+
x16 XOR y16 -> srn
195
195
+
cjv AND qws -> fgb
196
196
+
wdh OR ckb -> hdp
197
197
+
y09 XOR x09 -> npw
198
198
+
mkb AND wwj -> rpg
199
199
+
y17 AND x17 -> crc
200
200
+
y13 XOR x13 -> fpp
201
201
+
ctk OR vbw -> kpb
202
202
+
x00 AND y00 -> nvd
203
203
+
y04 XOR x04 -> qws
204
204
+
x44 AND y44 -> mfp
205
205
+
nvd XOR dgj -> z01
206
206
+
y22 XOR x22 -> pcw
207
207
+
dbm XOR rps -> z27
208
208
+
ntg OR sfd -> qfr
209
209
+
ddg OR fvs -> wwj
210
210
+
y40 XOR x40 -> sgh
211
211
+
ktw AND kpb -> trr
212
212
+
bsc XOR sqw -> z08
213
213
+
wpg AND mhr -> ptr
214
214
+
x01 AND y01 -> ggk
215
215
+
cpp OR dnj -> gsp
216
216
+
vbb OR vhq -> qnw
217
217
+
y20 XOR x20 -> kbm
218
218
+
sgp AND dqw -> sdr
219
219
+
x30 XOR y30 -> rmb
220
220
+
wrk OR krr -> dbm
221
221
+
x18 AND y18 -> dsr
222
222
+
srt AND pfp -> dmg
223
223
+
rps AND dbm -> wqv
224
224
+
qnw AND spm -> rgn
225
225
+
npw AND djg -> scf
226
226
+
sgh AND wmb -> ddg
227
227
+
y19 AND x19 -> twp
228
228
+
nbg AND dpj -> ntg
229
229
+
kbm XOR hqk -> z20
230
230
+
ptr OR spw -> nbs
231
231
+
x37 XOR y37 -> vqv
232
232
+
qvb AND hvt -> ptf
233
233
+
x18 XOR y18 -> thj
234
234
+
x43 XOR y43 -> tvv
235
235
+
scf OR gwn -> ntb
236
236
+
y21 XOR x21 -> ftw
237
237
+
y23 AND x23 -> dwj
238
238
+
x33 XOR y33 -> qmh
239
239
+
rtg XOR fsm -> z34
240
240
+
crc OR bww -> qnb
241
241
+
x44 XOR y44 -> spm
242
242
+
djg XOR npw -> z09
243
243
+
rqr OR ddw -> bsc
244
244
+
wfb OR hvb -> vwf
245
245
+
hqk AND kbm -> smj
246
246
+
fsp AND hbm -> wdh
247
247
+
x26 AND y26 -> wrk
248
248
+
hrp AND sgn -> bvk
249
249
+
tvv AND hbk -> vbb
250
250
+
y25 AND x25 -> tnt
251
251
+
rbw XOR tgb -> z02
252
252
+
x33 AND y33 -> wnc
253
253
+
y24 XOR x24 -> mhr
254
254
+
vmg OR fns -> djg
255
255
+
rmb AND rpt -> kcn
256
256
+
y23 XOR x23 -> srt
257
257
+
nff XOR brr -> z11
258
258
+
jkc OR jmg -> pfp
259
259
+
crm AND sss -> jsd
260
260
+
x11 AND y11 -> rrk
261
261
+
y32 AND x32 -> nnc
262
262
+
qmd OR vhp -> khj
263
263
+
x10 AND y10 -> npm
264
264
+
fgb OR grm -> crm
265
265
+
vwf XOR pcw -> z22
266
266
+
pcw AND vwf -> jkc
267
267
+
x34 XOR y34 -> fsm
268
268
+
pvw AND gsp -> jqj
269
269
+
skk AND qfr -> qjh
270
270
+
dhf OR ckm -> wdv
271
271
+
y31 AND x31 -> hgw
272
272
+
x14 AND y14 -> btt
273
273
+
y30 AND x30 -> rtq
274
274
+
dgj AND nvd -> qwq
275
275
+
fqs OR crf -> ttg
276
276
+
x00 XOR y00 -> z00
277
277
+
y20 AND x20 -> pjn
278
278
+
x29 XOR y29 -> skk
279
279
+
vkh XOR dtq -> hpc
280
280
+
rbw AND tgb -> vvj
281
281
+
thj AND qnb -> hsd
282
282
+
cjn OR twp -> hqk
283
283
+
y02 XOR x02 -> rbw
284
284
+
y38 AND x38 -> ckb
285
285
+
y12 AND x12 -> dhf
286
286
+
x17 XOR y17 -> brk
287
287
+
y34 AND x34 -> vbw
288
288
+
vbq OR cgr -> hbm
289
289
+
qrw AND hpc -> rnb
290
290
+
y39 AND x39 -> mqg
291
291
+
cjv XOR qws -> z04
292
292
+
y36 XOR x36 -> mgn
293
293
+
x03 XOR y03 -> hrp
294
294
+
wwj XOR mkb -> z41
295
295
+
#
296
296
+
# SWAPS:
297
297
+
# z06,rjv; z25,qmd; z31,vkh
298
298
+
#
299
299
+
# ORIGINAL: crm XOR sss -> z05
300
300
+
crm XOR sss -> z05
301
301
+
#
302
302
+
# ORIGINAL: y06 AND x06 -> z06
303
303
+
y06 XOR x06 -> z06
304
304
+
y06 AND x06 -> rjv
305
305
+
#
306
306
+
x07 XOR y07 -> jqn
307
307
+
swj AND rjv -> spj
308
308
+
swj XOR rjv -> hwk
309
309
+
spj OR hwk -> grj
310
310
+
# ORIGINAL: jqn XOR grj -> z07
311
311
+
jqn XOR grj -> z07
312
312
+
#
313
313
+
# ORIGINAL: wpg XOR mhr -> z24
314
314
+
wpg XOR mhr -> z24
315
315
+
#
316
316
+
# ORIGINAL: nbs XOR tnt -> z25
317
317
+
nbs XOR tnt -> qmd
318
318
+
y25 XOR x25 -> z25
319
319
+
#
320
320
+
# ORIGINAL: khj XOR mbh -> z26
321
321
+
khj XOR mbh -> z26
322
322
+
#
323
323
+
# ORIGINAL: rpt XOR rmb -> z30
324
324
+
rpt XOR rmb -> z30
325
325
+
#
326
326
+
# ORIGINAL: mjr OR hgw -> z31
327
327
+
mjr OR hgw -> vkh
328
328
+
y31 XOR x31 -> z31
329
329
+
#
330
330
+
# ORIGINAL: hpc XOR qrw -> z32
331
331
+
hpc XOR qrw -> z32
332
332
+
#
333
333
+
# ORIGINAL: mgn XOR vgd -> z36
334
334
+
mgn XOR vgd -> z36
335
335
+
#
336
336
+
# ORIGINAL: gqc AND vqv -> z37
337
337
+
gqc AND vqv -> z37
338
338
+
#
339
339
+
# ORIGINAL: fsp XOR hbm -> z38
340
340
+
fsp XOR hbm -> z38
+67
src/2024/24/notes.txt
···
1
1
+
Part 2:
2
2
+
3
3
+
$ ./solve.rb input
4
4
+
60614602965288
5
5
+
MISMATCH FOUND at 5:
6
6
+
Expected 1 + 1 to produce 10 but was 00
7
7
+
0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000
8
8
+
+ 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000
9
9
+
= 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000
10
10
+
MISMATCH FOUND at 6:
11
11
+
Expected 1 + 1 to produce 10 but was 01
12
12
+
0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000
13
13
+
+ 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000
14
14
+
= 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000
15
15
+
MISMATCH FOUND at 25:
16
16
+
Expected 1 + 1 to produce 10 but was 01
17
17
+
0 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000
18
18
+
+ 0 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000
19
19
+
= 00 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000
20
20
+
MISMATCH FOUND at 30:
21
21
+
Expected 1 + 1 to produce 10 but was 00
22
22
+
0 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000
23
23
+
+ 0 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000
24
24
+
= 00 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000
25
25
+
MISMATCH FOUND at 31:
26
26
+
Expected 1 + 1 to produce 10 but was 01
27
27
+
0 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000
28
28
+
+ 0 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000
29
29
+
= 00 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000
30
30
+
MISMATCH FOUND at 36:
31
31
+
Expected 1 + 1 to produce 10 but was 00
32
32
+
0 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000
33
33
+
+ 0 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000
34
34
+
= 00 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000
35
35
+
36
36
+
These Zs are wrong:
37
37
+
z05, z06, z25, z30, z31, z36
38
38
+
39
39
+
These are the operations for them:
40
40
+
crm XOR sss -> z05
41
41
+
y06 AND x06 -> z06
42
42
+
nbs XOR tnt -> z25
43
43
+
rpt XOR rmb -> z30
44
44
+
mjr OR hgw -> z31
45
45
+
mgn XOR vgd -> z36
46
46
+
47
47
+
z05, z25, z30, z36 are already XOR
48
48
+
but z06 is AND, and z31 is OR. That is wrong.
49
49
+
50
50
+
for z05 when adding 1+1, the output seems to be appearing in z07 instead of z06:
51
51
+
y06 AND x06 -> z06
52
52
+
jqn XOR grj -> z07
53
53
+
54
54
+
If we swap them we get one less error bit
55
55
+
FIRST SWAP: z06,z07
56
56
+
57
57
+
58
58
+
z30 is another XOR:
59
59
+
when adding 1+1, output appears in z32 instead of z31, swap?
60
60
+
yes: fewer error bits after swap
61
61
+
SECOND SWAP: z31,z32
62
62
+
63
63
+
After these two swaps, errors remain on z25 and z36
64
64
+
65
65
+
z25 is another XOR:
66
66
+
when adding 1+1, output appears in z25 instead of z26, swap them?
67
67
+
khj XOR mbh -> z26