Day 22 part 2 done

This commit is contained in:
Daniel Flanagan 2021-12-23 14:10:18 -06:00
parent 8f12a7278c
commit a6369ae853
Signed by: lytedev
GPG key ID: 5B2020A0F9921EF4

View file

@ -74,8 +74,13 @@ proc p1(input: Lines): uint64 =
result += (abs(x2 - x1 + 1) * abs(y2 - y1 + 1) * abs(z2 - z1 + 1)).uint64 result += (abs(x2 - x1 + 1) * abs(y2 - y1 + 1) * abs(z2 - z1 + 1)).uint64
proc p2(input: Lines): uint64 = proc p2(input: Lines): uint64 =
echo "p2" var ops = initHashSet[CuboidOperation]()
0 for op in input.asOps: ops.merge op
for op in ops:
let (t, c) = op
if t == union:
let (x1, x2, y1, y2, z1, z2) = c
result += abs(x2 - x1 + 1).uint64 * abs(y2 - y1 + 1).uint64 * abs(z2 - z1 + 1).uint64
const rt = ("""on x=-20..26,y=-36..17,z=-47..7 const rt = ("""on x=-20..26,y=-36..17,z=-47..7
on x=-20..33,y=-21..23,z=-26..28 on x=-20..33,y=-21..23,z=-26..28
@ -98,5 +103,5 @@ on x=-49..-5,y=-3..45,z=-29..18
off x=18..30,y=-20..-8,z=-3..13 off x=18..30,y=-20..-8,z=-3..13
on x=-41..9,y=-7..43,z=-33..15 on x=-41..9,y=-7..43,z=-33..15
on x=-54112..-39298,y=-85059..-49293,z=-27449..7877 on x=-54112..-39298,y=-85059..-49293,z=-27449..7877
on x=967..23432,y=45373..81175,z=27513..53682""".split('\n'), 590784'u64, 0'u64) on x=967..23432,y=45373..81175,z=27513..53682""".split('\n'), 590784'u64, 39769202357779'u64)
doDayX 22, (n: int) => n.loadInput, p1, p2, rt doDayX 22, (n: int) => n.loadInput, p1, p2, rt