Code for the Advent of Code event
aoc advent-of-code

Add notes for 2024 day 24

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