Day 20 clean and easy
This commit is contained in:
parent
3fede9fba2
commit
b93905b565
|
@ -55,22 +55,16 @@ proc `$`(image: Image): string =
|
||||||
if image.pixels[p]: s[y-tly][x-tlx] = '#'
|
if image.pixels[p]: s[y-tly][x-tlx] = '#'
|
||||||
s.join("\n")
|
s.join("\n")
|
||||||
|
|
||||||
|
proc solver(input: Lines, times: int): uint64 =
|
||||||
proc p1(input: Lines): uint64 =
|
let algo = input[0]
|
||||||
var image = input[2..^1].parse()
|
var image = input[2..^1].parse()
|
||||||
echo &"{image.pixels.len} dim: {image.topLeft} {image.bottomRight}:"
|
for _ in 1..times: image.enhance algo
|
||||||
echo image
|
|
||||||
image.enhance(input[0])
|
|
||||||
echo &"{image.pixels.len} dim: {image.topLeft} {image.bottomRight}:"
|
|
||||||
echo image
|
|
||||||
image.enhance(input[0])
|
|
||||||
echo &"{image.pixels.len} dim: {image.topLeft} {image.bottomRight}:"
|
|
||||||
echo image
|
|
||||||
for v in image.pixels.values:
|
for v in image.pixels.values:
|
||||||
if v: inc result
|
if v: inc result
|
||||||
|
|
||||||
proc p2(input: Lines): uint64 =
|
proc p1(input: Lines): uint64 = input.solver(2)
|
||||||
0
|
|
||||||
|
proc p2(input: Lines): uint64 = input.solver(50)
|
||||||
|
|
||||||
const input = """
|
const input = """
|
||||||
..#.#..#####.#.#.#.###.##.....###.##.#..###.####..#####..#....#..#..##..###..######.###...####..#..#####..##..#.#####...##.#.#..#.##..#.#......#.###.######.###.####...#.##.##..#..#..#####.....#.#....###..#.##......#.....#..#..#..##..#...##.######.####.####.#.#...#.......#..#.#.#...####.##.#......#..#...##.#.##..#...##.#.##..###.#......#.#.......#.#.#.####.###.##...#.....####.#..#..#.##.#....##..#.####....##...##..#...#......#.#.......#.......##..####..#...#.#.#...##..#.#..###..#####........#..####......#..#
|
..#.#..#####.#.#.#.###.##.....###.##.#..###.####..#####..#....#..#..##..###..######.###...####..#..#####..##..#.#####...##.#.#..#.##..#.#......#.###.######.###.####...#.##.##..#..#..#####.....#.#....###..#.##......#.....#..#..#..##..#...##.######.####.####.#.#...#.......#..#.#.#...####.##.#......#..#...##.#.##..#...##.#.##..###.#......#.#.......#.#.#.####.###.##...#.....####.#..#..#.##.#....##..#.####....##...##..#...#......#.#.......#.......##..####..#...#.#.#...##..#.#..###..#####........#..####......#..#
|
||||||
|
@ -81,4 +75,4 @@ const input = """
|
||||||
..#..
|
..#..
|
||||||
..###
|
..###
|
||||||
""".strip().split('\n')
|
""".strip().split('\n')
|
||||||
doDayX 20, (n: int) => n.loadInput, p1, p2, (input, 35'u64, 0'u64)
|
doDayX 20, (n: int) => n.loadInput, p1, p2, (input, 35'u64, 3351'u64)
|
||||||
|
|
Loading…
Reference in a new issue