2024 Day 24 complete
Part 2 solved manually, working on a programmatic solution
This commit is contained in:
parent
8e5e6a54fd
commit
40da8b1a0a
1
.gitignore
vendored
1
.gitignore
vendored
@ -54,3 +54,4 @@ _testmain.go
|
|||||||
*/day24/day24
|
*/day24/day24
|
||||||
*/day25/day25
|
*/day25/day25
|
||||||
|
|
||||||
|
*.ignore
|
||||||
|
313
2024/day24/input
Normal file
313
2024/day24/input
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 0
|
||||||
|
x02: 1
|
||||||
|
x03: 1
|
||||||
|
x04: 0
|
||||||
|
x05: 0
|
||||||
|
x06: 1
|
||||||
|
x07: 1
|
||||||
|
x08: 0
|
||||||
|
x09: 1
|
||||||
|
x10: 1
|
||||||
|
x11: 1
|
||||||
|
x12: 1
|
||||||
|
x13: 1
|
||||||
|
x14: 1
|
||||||
|
x15: 1
|
||||||
|
x16: 1
|
||||||
|
x17: 0
|
||||||
|
x18: 0
|
||||||
|
x19: 0
|
||||||
|
x20: 0
|
||||||
|
x21: 0
|
||||||
|
x22: 0
|
||||||
|
x23: 0
|
||||||
|
x24: 0
|
||||||
|
x25: 1
|
||||||
|
x26: 1
|
||||||
|
x27: 1
|
||||||
|
x28: 1
|
||||||
|
x29: 0
|
||||||
|
x30: 1
|
||||||
|
x31: 1
|
||||||
|
x32: 0
|
||||||
|
x33: 0
|
||||||
|
x34: 1
|
||||||
|
x35: 0
|
||||||
|
x36: 1
|
||||||
|
x37: 1
|
||||||
|
x38: 0
|
||||||
|
x39: 0
|
||||||
|
x40: 1
|
||||||
|
x41: 1
|
||||||
|
x42: 0
|
||||||
|
x43: 0
|
||||||
|
x44: 1
|
||||||
|
y00: 1
|
||||||
|
y01: 0
|
||||||
|
y02: 0
|
||||||
|
y03: 1
|
||||||
|
y04: 1
|
||||||
|
y05: 0
|
||||||
|
y06: 0
|
||||||
|
y07: 0
|
||||||
|
y08: 0
|
||||||
|
y09: 0
|
||||||
|
y10: 0
|
||||||
|
y11: 1
|
||||||
|
y12: 0
|
||||||
|
y13: 0
|
||||||
|
y14: 1
|
||||||
|
y15: 0
|
||||||
|
y16: 1
|
||||||
|
y17: 1
|
||||||
|
y18: 1
|
||||||
|
y19: 1
|
||||||
|
y20: 1
|
||||||
|
y21: 0
|
||||||
|
y22: 0
|
||||||
|
y23: 1
|
||||||
|
y24: 0
|
||||||
|
y25: 0
|
||||||
|
y26: 0
|
||||||
|
y27: 1
|
||||||
|
y28: 1
|
||||||
|
y29: 1
|
||||||
|
y30: 0
|
||||||
|
y31: 1
|
||||||
|
y32: 0
|
||||||
|
y33: 1
|
||||||
|
y34: 1
|
||||||
|
y35: 0
|
||||||
|
y36: 0
|
||||||
|
y37: 0
|
||||||
|
y38: 1
|
||||||
|
y39: 1
|
||||||
|
y40: 1
|
||||||
|
y41: 1
|
||||||
|
y42: 0
|
||||||
|
y43: 1
|
||||||
|
y44: 1
|
||||||
|
|
||||||
|
y13 AND x13 -> dct
|
||||||
|
y19 XOR x19 -> qww
|
||||||
|
x40 AND y40 -> vvt
|
||||||
|
bpj AND jmc -> qvd
|
||||||
|
x34 AND y34 -> qkf
|
||||||
|
y07 XOR x07 -> shj
|
||||||
|
x12 XOR y12 -> msr
|
||||||
|
dqf OR wvh -> mqr
|
||||||
|
y04 XOR x04 -> cwp
|
||||||
|
x16 AND y16 -> qsm
|
||||||
|
x10 XOR y10 -> fpp
|
||||||
|
y31 AND x31 -> mfb
|
||||||
|
y24 XOR x24 -> swf
|
||||||
|
kbw XOR cnq -> z20
|
||||||
|
x36 AND y36 -> fbv
|
||||||
|
y26 XOR x26 -> vwb
|
||||||
|
pnt OR nwb -> bnk
|
||||||
|
pdk AND fpp -> fnn
|
||||||
|
x18 XOR y18 -> fcm
|
||||||
|
y05 AND x05 -> mkq
|
||||||
|
y15 AND x15 -> mht
|
||||||
|
cnq AND kbw -> tdh
|
||||||
|
dvg OR vvt -> hfj
|
||||||
|
msr AND rfj -> qnh
|
||||||
|
y36 XOR x36 -> fmw
|
||||||
|
wgp OR ncj -> jjg
|
||||||
|
bkm OR bwr -> fgc
|
||||||
|
mht XOR fgc -> z15
|
||||||
|
fcm XOR qnk -> z18
|
||||||
|
bnk XOR qww -> z19
|
||||||
|
mgr AND vfc -> vsh
|
||||||
|
y42 XOR x42 -> jmc
|
||||||
|
cdh OR wjj -> qnk
|
||||||
|
rtc AND fkn -> dbr
|
||||||
|
bfg XOR rsw -> z21
|
||||||
|
y24 AND x24 -> dwp
|
||||||
|
y33 XOR x33 -> vfc
|
||||||
|
x13 XOR y13 -> fpd
|
||||||
|
qdw XOR mhh -> z29
|
||||||
|
x29 XOR y29 -> mhh
|
||||||
|
y38 XOR x38 -> cds
|
||||||
|
y42 AND x42 -> fcg
|
||||||
|
wnb XOR qjh -> z34
|
||||||
|
y30 AND x30 -> kqh
|
||||||
|
hdk OR qtc -> mgr
|
||||||
|
pbk OR sdq -> ggp
|
||||||
|
y43 XOR x43 -> psg
|
||||||
|
jsd AND kbc -> jbf
|
||||||
|
x17 XOR y17 -> jhw
|
||||||
|
grs XOR whw -> z39
|
||||||
|
x08 AND y08 -> hrv
|
||||||
|
y06 AND x06 -> wgp
|
||||||
|
vwb XOR dgc -> z26
|
||||||
|
tsw XOR wwm -> hdt
|
||||||
|
tqf XOR grc -> z25
|
||||||
|
x09 AND y09 -> z09
|
||||||
|
y25 AND x25 -> dmw
|
||||||
|
x23 XOR y23 -> tqk
|
||||||
|
x11 XOR y11 -> jrm
|
||||||
|
cwp AND rsk -> dmh
|
||||||
|
y00 AND x00 -> jfb
|
||||||
|
tmd AND fsp -> rtw
|
||||||
|
qww AND bnk -> frn
|
||||||
|
jbf OR bmh -> qdw
|
||||||
|
rtc XOR fkn -> z02
|
||||||
|
cwp XOR rsk -> z04
|
||||||
|
mqr XOR fmw -> z36
|
||||||
|
y40 XOR x40 -> dqk
|
||||||
|
y29 AND x29 -> jnk
|
||||||
|
y14 XOR x14 -> hsh
|
||||||
|
x32 XOR y32 -> vtg
|
||||||
|
mhh AND qdw -> hdf
|
||||||
|
x23 AND y23 -> sjk
|
||||||
|
x03 AND y03 -> ttc
|
||||||
|
qhs OR vkm -> z45
|
||||||
|
y25 XOR x25 -> tqf
|
||||||
|
y28 AND x28 -> bmh
|
||||||
|
y19 AND x19 -> sgc
|
||||||
|
tdw OR ndp -> grs
|
||||||
|
rrc AND bsn -> vfs
|
||||||
|
y41 AND x41 -> pkb
|
||||||
|
tsw AND wwm -> rnk
|
||||||
|
tqk XOR chk -> z23
|
||||||
|
x05 XOR y05 -> wwm
|
||||||
|
kqh OR nbf -> rrc
|
||||||
|
whw AND grs -> rtb
|
||||||
|
fcg OR qvd -> drc
|
||||||
|
vsk AND djp -> wkn
|
||||||
|
y37 AND x37 -> hbg
|
||||||
|
vkd XOR wqr -> gbf
|
||||||
|
gmj XOR swf -> z24
|
||||||
|
y41 XOR x41 -> gfs
|
||||||
|
sdb XOR cds -> z38
|
||||||
|
x21 AND y21 -> rkv
|
||||||
|
pdk XOR fpp -> z10
|
||||||
|
chk AND tqk -> mnm
|
||||||
|
hbg OR kjf -> sdb
|
||||||
|
pkb OR nvj -> bpj
|
||||||
|
grv AND jnv -> kjf
|
||||||
|
x00 XOR y00 -> z00
|
||||||
|
jjj XOR jfb -> z01
|
||||||
|
x44 XOR y44 -> wdq
|
||||||
|
ttc OR vkp -> rsk
|
||||||
|
x27 XOR y27 -> vsk
|
||||||
|
dbr OR vrb -> psp
|
||||||
|
x32 AND y32 -> qtc
|
||||||
|
hdt AND gwg -> ncj
|
||||||
|
nqw OR tdh -> bfg
|
||||||
|
y03 XOR x03 -> fhp
|
||||||
|
y15 XOR x15 -> jgt
|
||||||
|
x43 AND y43 -> ndc
|
||||||
|
fmw AND mqr -> pqm
|
||||||
|
fnn OR cpd -> tfh
|
||||||
|
bsn XOR rrc -> z31
|
||||||
|
dpr AND nvv -> z30
|
||||||
|
x34 XOR y34 -> qjh
|
||||||
|
wnb AND qjh -> pnf
|
||||||
|
y20 AND x20 -> nqw
|
||||||
|
hfj AND gfs -> nvj
|
||||||
|
y22 AND x22 -> dvc
|
||||||
|
nwr OR jgt -> shs
|
||||||
|
x04 AND y04 -> dsn
|
||||||
|
x02 XOR y02 -> fkn
|
||||||
|
fhp AND psp -> vkp
|
||||||
|
x33 AND y33 -> pwh
|
||||||
|
mht AND fgc -> nwr
|
||||||
|
jfb AND jjj -> pss
|
||||||
|
y26 AND x26 -> hts
|
||||||
|
hts OR hqr -> djp
|
||||||
|
dct OR ffq -> gnt
|
||||||
|
ndc OR gqn -> ggg
|
||||||
|
y27 AND x27 -> sfr
|
||||||
|
pwh OR vsh -> wnb
|
||||||
|
vtg XOR ssr -> z32
|
||||||
|
sjk OR mnm -> gmj
|
||||||
|
jjg XOR shj -> z07
|
||||||
|
gbf OR ttm -> pdk
|
||||||
|
ggg AND wdq -> vkm
|
||||||
|
mvt XOR jnw -> z35
|
||||||
|
ggg XOR wdq -> z44
|
||||||
|
swf AND gmj -> ccj
|
||||||
|
gnt AND hsh -> bkm
|
||||||
|
mfb OR vfs -> ssr
|
||||||
|
wnd AND shs -> pgd
|
||||||
|
x16 XOR y16 -> wnd
|
||||||
|
x11 AND y11 -> fqp
|
||||||
|
vsk XOR djp -> z27
|
||||||
|
x28 XOR y28 -> kbc
|
||||||
|
rtb OR fvv -> fkp
|
||||||
|
y01 XOR x01 -> jjj
|
||||||
|
rnk OR mkq -> z05
|
||||||
|
cjc XOR ggp -> z08
|
||||||
|
y39 XOR x39 -> whw
|
||||||
|
fkp AND dqk -> dvg
|
||||||
|
y37 XOR x37 -> jnv
|
||||||
|
x02 AND y02 -> vrb
|
||||||
|
prk XOR jhw -> z17
|
||||||
|
wvc OR hrv -> vkd
|
||||||
|
hfj XOR gfs -> z41
|
||||||
|
kbc XOR jsd -> z28
|
||||||
|
shj AND jjg -> pbk
|
||||||
|
dmh OR dsn -> tsw
|
||||||
|
x10 AND y10 -> cpd
|
||||||
|
rsw AND bfg -> mbt
|
||||||
|
jhw AND prk -> wjj
|
||||||
|
hmn OR qnh -> sjh
|
||||||
|
fqp OR rng -> rfj
|
||||||
|
y07 AND x07 -> sdq
|
||||||
|
vfc XOR mgr -> z33
|
||||||
|
sjh XOR fpd -> z13
|
||||||
|
ggp AND cjc -> wvc
|
||||||
|
y35 XOR x35 -> mvt
|
||||||
|
fsp XOR tmd -> z22
|
||||||
|
y09 XOR x09 -> wqr
|
||||||
|
dpr XOR nvv -> nbf
|
||||||
|
hdt XOR gwg -> z06
|
||||||
|
mvt AND jnw -> dqf
|
||||||
|
x35 AND y35 -> wvh
|
||||||
|
grd OR dmw -> dgc
|
||||||
|
psp XOR fhp -> z03
|
||||||
|
x08 XOR y08 -> cjc
|
||||||
|
x39 AND y39 -> fvv
|
||||||
|
x38 AND y38 -> ndp
|
||||||
|
ssr AND vtg -> hdk
|
||||||
|
frn OR sgc -> kbw
|
||||||
|
qsm OR pgd -> prk
|
||||||
|
cds AND sdb -> tdw
|
||||||
|
ccj OR dwp -> grc
|
||||||
|
psg XOR drc -> z43
|
||||||
|
mbt OR rkv -> tmd
|
||||||
|
y18 AND x18 -> nwb
|
||||||
|
jmc XOR bpj -> z42
|
||||||
|
y12 AND x12 -> hmn
|
||||||
|
jrm AND tfh -> rng
|
||||||
|
qnk AND fcm -> pnt
|
||||||
|
cpp OR pss -> rtc
|
||||||
|
sjh AND fpd -> ffq
|
||||||
|
jnk OR hdf -> nvv
|
||||||
|
grv XOR jnv -> z37
|
||||||
|
x20 XOR y20 -> cnq
|
||||||
|
y31 XOR x31 -> bsn
|
||||||
|
rfj XOR msr -> z12
|
||||||
|
vkd AND wqr -> ttm
|
||||||
|
y17 AND x17 -> cdh
|
||||||
|
dgc AND vwb -> hqr
|
||||||
|
y14 AND x14 -> bwr
|
||||||
|
y06 XOR x06 -> gwg
|
||||||
|
y22 XOR x22 -> fsp
|
||||||
|
fkp XOR dqk -> z40
|
||||||
|
jrm XOR tfh -> z11
|
||||||
|
y30 XOR x30 -> dpr
|
||||||
|
hsh XOR gnt -> z14
|
||||||
|
x21 XOR y21 -> rsw
|
||||||
|
rtw OR dvc -> chk
|
||||||
|
x44 AND y44 -> qhs
|
||||||
|
qkf OR pnf -> jnw
|
||||||
|
fbv OR pqm -> grv
|
||||||
|
grc AND tqf -> grd
|
||||||
|
drc AND psg -> gqn
|
||||||
|
shs XOR wnd -> z16
|
||||||
|
y01 AND x01 -> cpp
|
||||||
|
sfr OR wkn -> jsd
|
192
2024/day24/main.go
Normal file
192
2024/day24/main.go
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
inp := h.StdinToStringSlice()
|
||||||
|
part1(inp)
|
||||||
|
fmt.Println()
|
||||||
|
part2(inp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func part1(inp []string) {
|
||||||
|
fmt.Println("# Part 1")
|
||||||
|
dev, gates := parseInput1(inp)
|
||||||
|
// Perform all logic
|
||||||
|
gateDone := make(map[int]bool)
|
||||||
|
for len(gateDone) != len(gates)-1 {
|
||||||
|
for i := range gates {
|
||||||
|
if _, ok := gateDone[i]; !ok {
|
||||||
|
pts := strings.Split(gates[i], " ")
|
||||||
|
var w1, w2, ok bool
|
||||||
|
if w1, ok = dev[pts[0]]; ok {
|
||||||
|
if w2, ok = dev[pts[2]]; ok {
|
||||||
|
switch pts[1] {
|
||||||
|
case "AND":
|
||||||
|
dev[pts[4]] = w1 && w2
|
||||||
|
case "OR":
|
||||||
|
dev[pts[4]] = w1 || w2
|
||||||
|
case "XOR":
|
||||||
|
dev[pts[4]] = w1 != w2
|
||||||
|
}
|
||||||
|
gateDone[i] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println(findValueOf(dev, "z"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not fully working yet... I solved this part manually.
|
||||||
|
func part2(inp []string) {
|
||||||
|
fmt.Println("# Part 2")
|
||||||
|
gates := parseInput2(inp)[1]
|
||||||
|
|
||||||
|
var swapped []string
|
||||||
|
var c0 string
|
||||||
|
|
||||||
|
for i := 0; i < 45; i++ {
|
||||||
|
n := fmt.Sprintf("%02d", i)
|
||||||
|
var m1, n1, r1, z1, c1 string
|
||||||
|
|
||||||
|
m1 = find("x"+n, "y"+n, "XOR", gates)
|
||||||
|
n1 = find("x"+n, "y"+n, "AND", gates)
|
||||||
|
|
||||||
|
if c0 != "" {
|
||||||
|
r1 = find(c0, m1, "AND", gates)
|
||||||
|
if r1 == "" {
|
||||||
|
m1, n1 = n1, m1
|
||||||
|
swapped = append(swapped, m1, n1)
|
||||||
|
r1 = find(c0, m1, "AND", gates)
|
||||||
|
}
|
||||||
|
|
||||||
|
z1 = find(c0, m1, "XOR", gates)
|
||||||
|
|
||||||
|
if strings.HasPrefix(m1, "z") {
|
||||||
|
m1, z1 = z1, m1
|
||||||
|
swapped = append(swapped, m1, z1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(n1, "z") {
|
||||||
|
n1, z1 = z1, n1
|
||||||
|
swapped = append(swapped, n1, z1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(r1, "z") {
|
||||||
|
r1, z1 = z1, r1
|
||||||
|
swapped = append(swapped, r1, z1)
|
||||||
|
}
|
||||||
|
|
||||||
|
c1 = find(r1, n1, "OR", gates)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(c1, "z") && c1 != "z45" {
|
||||||
|
c1, z1 = z1, c1
|
||||||
|
swapped = append(swapped, c1, z1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if c0 == "" {
|
||||||
|
c0 = n1
|
||||||
|
} else {
|
||||||
|
c0 = c1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort and join swapped wires
|
||||||
|
sort.Strings(swapped)
|
||||||
|
fmt.Println(strings.Join(swapped, ","))
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseInput1(inp []string) (map[string]bool, []string) {
|
||||||
|
dev := make(map[string]bool)
|
||||||
|
var gates []string
|
||||||
|
var inGates bool
|
||||||
|
for i := range inp {
|
||||||
|
if len(inp[i]) == 0 {
|
||||||
|
inGates = true
|
||||||
|
}
|
||||||
|
if !inGates {
|
||||||
|
if inp[i][3] == ':' {
|
||||||
|
wire := inp[i][:3]
|
||||||
|
v := inp[i][5] == '1'
|
||||||
|
dev[wire] = v
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gates = append(gates, inp[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dev, gates
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseInput2(inp []string) [][]string {
|
||||||
|
var parts [][]string
|
||||||
|
var currPt []string
|
||||||
|
for _, line := range inp {
|
||||||
|
if line == "" {
|
||||||
|
if len(currPt) > 0 {
|
||||||
|
parts = append(parts, currPt)
|
||||||
|
currPt = []string{}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
currPt = append(currPt, line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(currPt) > 0 {
|
||||||
|
parts = append(parts, currPt)
|
||||||
|
}
|
||||||
|
return parts
|
||||||
|
}
|
||||||
|
|
||||||
|
func findHighestReg(dev map[string]bool) int {
|
||||||
|
var highest string
|
||||||
|
for i := range dev {
|
||||||
|
if i > highest {
|
||||||
|
highest = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret, _ := strconv.Atoi(highest[1:])
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func findValueOf(dev map[string]bool, register string) int64 {
|
||||||
|
var highest string
|
||||||
|
for i := range dev {
|
||||||
|
if i > highest {
|
||||||
|
highest = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
get, _ := strconv.Atoi(highest[1:])
|
||||||
|
var val int64
|
||||||
|
for i := get; ; i-- {
|
||||||
|
key := fmt.Sprintf("%s%02d", register, i)
|
||||||
|
v, ok := dev[key]
|
||||||
|
if !ok {
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
val = val << 1
|
||||||
|
if v {
|
||||||
|
val += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
|
func find(w1, w2, op string, gates []string) string {
|
||||||
|
for _, gate := range gates {
|
||||||
|
if strings.HasPrefix(gate, fmt.Sprintf("%s %s %s", w1, op, w2)) ||
|
||||||
|
strings.HasPrefix(gate, fmt.Sprintf("%s %s %s", w2, op, w2)) {
|
||||||
|
parts := strings.Split(gate, " -> ")
|
||||||
|
return parts[len(parts)-1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
10
2024/day24/testinput
Normal file
10
2024/day24/testinput
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 1
|
||||||
|
x02: 1
|
||||||
|
y00: 0
|
||||||
|
y01: 1
|
||||||
|
y02: 0
|
||||||
|
|
||||||
|
x00 AND y00 -> z00
|
||||||
|
x01 XOR y01 -> z01
|
||||||
|
x02 OR y02 -> z02
|
47
2024/day24/testinput2
Normal file
47
2024/day24/testinput2
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 0
|
||||||
|
x02: 1
|
||||||
|
x03: 1
|
||||||
|
x04: 0
|
||||||
|
y00: 1
|
||||||
|
y01: 1
|
||||||
|
y02: 1
|
||||||
|
y03: 1
|
||||||
|
y04: 1
|
||||||
|
|
||||||
|
ntg XOR fgs -> mjb
|
||||||
|
y02 OR x01 -> tnw
|
||||||
|
kwq OR kpj -> z05
|
||||||
|
x00 OR x03 -> fst
|
||||||
|
tgd XOR rvg -> z01
|
||||||
|
vdt OR tnw -> bfw
|
||||||
|
bfw AND frj -> z10
|
||||||
|
ffh OR nrd -> bqk
|
||||||
|
y00 AND y03 -> djm
|
||||||
|
y03 OR y00 -> psh
|
||||||
|
bqk OR frj -> z08
|
||||||
|
tnw OR fst -> frj
|
||||||
|
gnj AND tgd -> z11
|
||||||
|
bfw XOR mjb -> z00
|
||||||
|
x03 OR x00 -> vdt
|
||||||
|
gnj AND wpb -> z02
|
||||||
|
x04 AND y00 -> kjc
|
||||||
|
djm OR pbm -> qhw
|
||||||
|
nrd AND vdt -> hwm
|
||||||
|
kjc AND fst -> rvg
|
||||||
|
y04 OR y02 -> fgs
|
||||||
|
y01 AND x02 -> pbm
|
||||||
|
ntg OR kjc -> kwq
|
||||||
|
psh XOR fgs -> tgd
|
||||||
|
qhw XOR tgd -> z09
|
||||||
|
pbm OR djm -> kpj
|
||||||
|
x03 XOR y03 -> ffh
|
||||||
|
x00 XOR y04 -> ntg
|
||||||
|
bfw OR bqk -> z06
|
||||||
|
nrd XOR fgs -> wpb
|
||||||
|
frj XOR qhw -> z04
|
||||||
|
bqk OR frj -> z07
|
||||||
|
y03 OR x01 -> nrd
|
||||||
|
hwm AND bqk -> z03
|
||||||
|
tgd XOR rvg -> z12
|
||||||
|
tnw OR pbm -> gnj
|
19
2024/day24/testinput3
Normal file
19
2024/day24/testinput3
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
x00: 0
|
||||||
|
x01: 1
|
||||||
|
x02: 0
|
||||||
|
x03: 1
|
||||||
|
x04: 0
|
||||||
|
x05: 1
|
||||||
|
y00: 0
|
||||||
|
y01: 0
|
||||||
|
y02: 1
|
||||||
|
y03: 1
|
||||||
|
y04: 0
|
||||||
|
y05: 1
|
||||||
|
|
||||||
|
x00 AND y00 -> z05
|
||||||
|
x01 AND y01 -> z02
|
||||||
|
x02 AND y02 -> z01
|
||||||
|
x03 AND y03 -> z03
|
||||||
|
x04 AND y04 -> z04
|
||||||
|
x05 AND y05 -> z00
|
Loading…
Reference in New Issue
Block a user