day 25 optimize and improve heuristics
[aoc_eblake.git] / 2019 / day1.m4
blob08cdf46a9213ee8a835758b6006e7fc43ad5e4a1
1 divert(-1)dnl -*- m4 -*-
2 # Usage: m4 [-Dfile=day1.input] day1.m4
4 include(`common.m4')ifelse(common(1), `ok', `',
5 `errprint(`Missing common initialization
6 ')m4exit(1)')
8 define(`part1', 0)
9 define(`part2', 0)
10 define(`compute', `_$0($1)ifelse($2, `', `', `$0(shift($@))')')
11 define(`_compute',
12   `define(`part1', eval(part1 + $1 / 3 - 2))do(eval($1 / 3 - 2))')
13 define(`do', `ifelse(eval($1 > 8), 1, `do(eval($1 / 3 - 2))')define(`part2',
14   eval(part2 + $1))')
15 compute(translit(include(defn(`file')), `
16 ', `,'))
18 divert`'part1
19 part2