aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2023-01-19 14:21:45 +0800
committerkaiwu <kaiwu2004@gmail.com>2023-01-19 14:21:45 +0800
commitd1458a3027532d0f19a6ce615a6140134abbeb44 (patch)
tree657442ac93f0e739875fa6d862d303b220af3ce0 /src
parenta5ab1e0bdbb8ccc53199c3783100e971e23a2c7a (diff)
downloadadvent-of-code-d1458a3027532d0f19a6ce615a6140134abbeb44.tar.gz
advent-of-code-d1458a3027532d0f19a6ce615a6140134abbeb44.zip
setup for 2016 2017 2018 2019 2020 2021
Diffstat (limited to 'src')
-rw-r--r--src/2016/day10/README.md0
-rw-r--r--src/2016/day10/aoc.cpp6
-rw-r--r--src/2016/day10/aoc.h7
-rw-r--r--src/2016/day10/input0
-rw-r--r--src/2016/day10/input00
-rw-r--r--src/2016/day11/README.md0
-rw-r--r--src/2016/day11/aoc.cpp6
-rw-r--r--src/2016/day11/aoc.h7
-rw-r--r--src/2016/day11/input0
-rw-r--r--src/2016/day11/input00
-rw-r--r--src/2016/day12/README.md0
-rw-r--r--src/2016/day12/aoc.cpp6
-rw-r--r--src/2016/day12/aoc.h7
-rw-r--r--src/2016/day12/input0
-rw-r--r--src/2016/day12/input00
-rw-r--r--src/2016/day13/README.md0
-rw-r--r--src/2016/day13/aoc.cpp6
-rw-r--r--src/2016/day13/aoc.h7
-rw-r--r--src/2016/day13/input0
-rw-r--r--src/2016/day13/input00
-rw-r--r--src/2016/day14/README.md0
-rw-r--r--src/2016/day14/aoc.cpp6
-rw-r--r--src/2016/day14/aoc.h7
-rw-r--r--src/2016/day14/input0
-rw-r--r--src/2016/day14/input00
-rw-r--r--src/2016/day15/README.md0
-rw-r--r--src/2016/day15/aoc.cpp6
-rw-r--r--src/2016/day15/aoc.h7
-rw-r--r--src/2016/day15/input0
-rw-r--r--src/2016/day15/input00
-rw-r--r--src/2016/day16/README.md0
-rw-r--r--src/2016/day16/aoc.cpp6
-rw-r--r--src/2016/day16/aoc.h7
-rw-r--r--src/2016/day16/input0
-rw-r--r--src/2016/day16/input00
-rw-r--r--src/2016/day17/README.md0
-rw-r--r--src/2016/day17/aoc.cpp6
-rw-r--r--src/2016/day17/aoc.h7
-rw-r--r--src/2016/day17/input0
-rw-r--r--src/2016/day17/input00
-rw-r--r--src/2016/day18/README.md0
-rw-r--r--src/2016/day18/aoc.cpp6
-rw-r--r--src/2016/day18/aoc.h7
-rw-r--r--src/2016/day18/input0
-rw-r--r--src/2016/day18/input00
-rw-r--r--src/2016/day19/README.md0
-rw-r--r--src/2016/day19/aoc.cpp6
-rw-r--r--src/2016/day19/aoc.h7
-rw-r--r--src/2016/day19/input0
-rw-r--r--src/2016/day19/input00
-rw-r--r--src/2016/day20/README.md0
-rw-r--r--src/2016/day20/aoc.cpp6
-rw-r--r--src/2016/day20/aoc.h7
-rw-r--r--src/2016/day20/input0
-rw-r--r--src/2016/day20/input00
-rw-r--r--src/2016/day21/README.md0
-rw-r--r--src/2016/day21/aoc.cpp6
-rw-r--r--src/2016/day21/aoc.h7
-rw-r--r--src/2016/day21/input0
-rw-r--r--src/2016/day21/input00
-rw-r--r--src/2016/day22/README.md0
-rw-r--r--src/2016/day22/aoc.cpp6
-rw-r--r--src/2016/day22/aoc.h7
-rw-r--r--src/2016/day22/input0
-rw-r--r--src/2016/day22/input00
-rw-r--r--src/2016/day23/README.md0
-rw-r--r--src/2016/day23/aoc.cpp6
-rw-r--r--src/2016/day23/aoc.h7
-rw-r--r--src/2016/day23/input0
-rw-r--r--src/2016/day23/input00
-rw-r--r--src/2016/day24/README.md0
-rw-r--r--src/2016/day24/aoc.cpp6
-rw-r--r--src/2016/day24/aoc.h7
-rw-r--r--src/2016/day24/input0
-rw-r--r--src/2016/day24/input00
-rw-r--r--src/2016/day25/README.md0
-rw-r--r--src/2016/day25/aoc.cpp6
-rw-r--r--src/2016/day25/aoc.h7
-rw-r--r--src/2016/day25/input0
-rw-r--r--src/2016/day25/input00
-rw-r--r--src/2017/day10/README.md0
-rw-r--r--src/2017/day10/aoc.cpp6
-rw-r--r--src/2017/day10/aoc.h7
-rw-r--r--src/2017/day10/input0
-rw-r--r--src/2017/day10/input00
-rw-r--r--src/2017/day11/README.md0
-rw-r--r--src/2017/day11/aoc.cpp6
-rw-r--r--src/2017/day11/aoc.h7
-rw-r--r--src/2017/day11/input0
-rw-r--r--src/2017/day11/input00
-rw-r--r--src/2017/day12/README.md0
-rw-r--r--src/2017/day12/aoc.cpp6
-rw-r--r--src/2017/day12/aoc.h7
-rw-r--r--src/2017/day12/input0
-rw-r--r--src/2017/day12/input00
-rw-r--r--src/2017/day13/README.md0
-rw-r--r--src/2017/day13/aoc.cpp6
-rw-r--r--src/2017/day13/aoc.h7
-rw-r--r--src/2017/day13/input0
-rw-r--r--src/2017/day13/input00
-rw-r--r--src/2017/day14/README.md0
-rw-r--r--src/2017/day14/aoc.cpp6
-rw-r--r--src/2017/day14/aoc.h7
-rw-r--r--src/2017/day14/input0
-rw-r--r--src/2017/day14/input00
-rw-r--r--src/2017/day15/README.md0
-rw-r--r--src/2017/day15/aoc.cpp6
-rw-r--r--src/2017/day15/aoc.h7
-rw-r--r--src/2017/day15/input0
-rw-r--r--src/2017/day15/input00
-rw-r--r--src/2017/day16/README.md0
-rw-r--r--src/2017/day16/aoc.cpp6
-rw-r--r--src/2017/day16/aoc.h7
-rw-r--r--src/2017/day16/input0
-rw-r--r--src/2017/day16/input00
-rw-r--r--src/2017/day17/README.md0
-rw-r--r--src/2017/day17/aoc.cpp6
-rw-r--r--src/2017/day17/aoc.h7
-rw-r--r--src/2017/day17/input0
-rw-r--r--src/2017/day17/input00
-rw-r--r--src/2017/day18/README.md0
-rw-r--r--src/2017/day18/aoc.cpp6
-rw-r--r--src/2017/day18/aoc.h7
-rw-r--r--src/2017/day18/input0
-rw-r--r--src/2017/day18/input00
-rw-r--r--src/2017/day19/README.md0
-rw-r--r--src/2017/day19/aoc.cpp6
-rw-r--r--src/2017/day19/aoc.h7
-rw-r--r--src/2017/day19/input0
-rw-r--r--src/2017/day19/input00
-rw-r--r--src/2017/day20/README.md0
-rw-r--r--src/2017/day20/aoc.cpp6
-rw-r--r--src/2017/day20/aoc.h7
-rw-r--r--src/2017/day20/input0
-rw-r--r--src/2017/day20/input00
-rw-r--r--src/2017/day21/README.md0
-rw-r--r--src/2017/day21/aoc.cpp6
-rw-r--r--src/2017/day21/aoc.h7
-rw-r--r--src/2017/day21/input0
-rw-r--r--src/2017/day21/input00
-rw-r--r--src/2017/day22/README.md0
-rw-r--r--src/2017/day22/aoc.cpp6
-rw-r--r--src/2017/day22/aoc.h7
-rw-r--r--src/2017/day22/input0
-rw-r--r--src/2017/day22/input00
-rw-r--r--src/2017/day23/README.md0
-rw-r--r--src/2017/day23/aoc.cpp6
-rw-r--r--src/2017/day23/aoc.h7
-rw-r--r--src/2017/day23/input0
-rw-r--r--src/2017/day23/input00
-rw-r--r--src/2017/day24/README.md0
-rw-r--r--src/2017/day24/aoc.cpp6
-rw-r--r--src/2017/day24/aoc.h7
-rw-r--r--src/2017/day24/input0
-rw-r--r--src/2017/day24/input00
-rw-r--r--src/2017/day25/README.md0
-rw-r--r--src/2017/day25/aoc.cpp6
-rw-r--r--src/2017/day25/aoc.h7
-rw-r--r--src/2017/day25/input0
-rw-r--r--src/2017/day25/input00
-rw-r--r--src/2018/day10/README.md0
-rw-r--r--src/2018/day10/aoc.cpp6
-rw-r--r--src/2018/day10/aoc.h7
-rw-r--r--src/2018/day10/input0
-rw-r--r--src/2018/day10/input00
-rw-r--r--src/2018/day11/README.md0
-rw-r--r--src/2018/day11/aoc.cpp6
-rw-r--r--src/2018/day11/aoc.h7
-rw-r--r--src/2018/day11/input0
-rw-r--r--src/2018/day11/input00
-rw-r--r--src/2018/day12/README.md0
-rw-r--r--src/2018/day12/aoc.cpp6
-rw-r--r--src/2018/day12/aoc.h7
-rw-r--r--src/2018/day12/input0
-rw-r--r--src/2018/day12/input00
-rw-r--r--src/2018/day13/README.md0
-rw-r--r--src/2018/day13/aoc.cpp6
-rw-r--r--src/2018/day13/aoc.h7
-rw-r--r--src/2018/day13/input0
-rw-r--r--src/2018/day13/input00
-rw-r--r--src/2018/day14/README.md0
-rw-r--r--src/2018/day14/aoc.cpp6
-rw-r--r--src/2018/day14/aoc.h7
-rw-r--r--src/2018/day14/input0
-rw-r--r--src/2018/day14/input00
-rw-r--r--src/2018/day15/README.md0
-rw-r--r--src/2018/day15/aoc.cpp6
-rw-r--r--src/2018/day15/aoc.h7
-rw-r--r--src/2018/day15/input0
-rw-r--r--src/2018/day15/input00
-rw-r--r--src/2018/day16/README.md0
-rw-r--r--src/2018/day16/aoc.cpp6
-rw-r--r--src/2018/day16/aoc.h7
-rw-r--r--src/2018/day16/input0
-rw-r--r--src/2018/day16/input00
-rw-r--r--src/2018/day17/README.md0
-rw-r--r--src/2018/day17/aoc.cpp6
-rw-r--r--src/2018/day17/aoc.h7
-rw-r--r--src/2018/day17/input0
-rw-r--r--src/2018/day17/input00
-rw-r--r--src/2018/day18/README.md0
-rw-r--r--src/2018/day18/aoc.cpp6
-rw-r--r--src/2018/day18/aoc.h7
-rw-r--r--src/2018/day18/input0
-rw-r--r--src/2018/day18/input00
-rw-r--r--src/2018/day19/README.md0
-rw-r--r--src/2018/day19/aoc.cpp6
-rw-r--r--src/2018/day19/aoc.h7
-rw-r--r--src/2018/day19/input0
-rw-r--r--src/2018/day19/input00
-rw-r--r--src/2018/day20/README.md0
-rw-r--r--src/2018/day20/aoc.cpp6
-rw-r--r--src/2018/day20/aoc.h7
-rw-r--r--src/2018/day20/input0
-rw-r--r--src/2018/day20/input00
-rw-r--r--src/2018/day21/README.md0
-rw-r--r--src/2018/day21/aoc.cpp6
-rw-r--r--src/2018/day21/aoc.h7
-rw-r--r--src/2018/day21/input0
-rw-r--r--src/2018/day21/input00
-rw-r--r--src/2018/day22/README.md0
-rw-r--r--src/2018/day22/aoc.cpp6
-rw-r--r--src/2018/day22/aoc.h7
-rw-r--r--src/2018/day22/input0
-rw-r--r--src/2018/day22/input00
-rw-r--r--src/2018/day23/README.md0
-rw-r--r--src/2018/day23/aoc.cpp6
-rw-r--r--src/2018/day23/aoc.h7
-rw-r--r--src/2018/day23/input0
-rw-r--r--src/2018/day23/input00
-rw-r--r--src/2018/day24/README.md0
-rw-r--r--src/2018/day24/aoc.cpp6
-rw-r--r--src/2018/day24/aoc.h7
-rw-r--r--src/2018/day24/input0
-rw-r--r--src/2018/day24/input00
-rw-r--r--src/2018/day25/README.md0
-rw-r--r--src/2018/day25/aoc.cpp6
-rw-r--r--src/2018/day25/aoc.h7
-rw-r--r--src/2018/day25/input0
-rw-r--r--src/2018/day25/input00
-rw-r--r--src/2019/day11/README.md0
-rw-r--r--src/2019/day11/aoc.cpp6
-rw-r--r--src/2019/day11/aoc.h7
-rw-r--r--src/2019/day11/input0
-rw-r--r--src/2019/day11/input00
-rw-r--r--src/2019/day12/README.md0
-rw-r--r--src/2019/day12/aoc.cpp6
-rw-r--r--src/2019/day12/aoc.h7
-rw-r--r--src/2019/day12/input0
-rw-r--r--src/2019/day12/input00
-rw-r--r--src/2019/day13/README.md0
-rw-r--r--src/2019/day13/aoc.cpp6
-rw-r--r--src/2019/day13/aoc.h7
-rw-r--r--src/2019/day13/input0
-rw-r--r--src/2019/day13/input00
-rw-r--r--src/2019/day14/README.md0
-rw-r--r--src/2019/day14/aoc.cpp6
-rw-r--r--src/2019/day14/aoc.h7
-rw-r--r--src/2019/day14/input0
-rw-r--r--src/2019/day14/input00
-rw-r--r--src/2019/day15/README.md0
-rw-r--r--src/2019/day15/aoc.cpp6
-rw-r--r--src/2019/day15/aoc.h7
-rw-r--r--src/2019/day15/input0
-rw-r--r--src/2019/day15/input00
-rw-r--r--src/2019/day16/README.md0
-rw-r--r--src/2019/day16/aoc.cpp6
-rw-r--r--src/2019/day16/aoc.h7
-rw-r--r--src/2019/day16/input0
-rw-r--r--src/2019/day16/input00
-rw-r--r--src/2019/day17/README.md0
-rw-r--r--src/2019/day17/aoc.cpp6
-rw-r--r--src/2019/day17/aoc.h7
-rw-r--r--src/2019/day17/input0
-rw-r--r--src/2019/day17/input00
-rw-r--r--src/2019/day18/README.md0
-rw-r--r--src/2019/day18/aoc.cpp6
-rw-r--r--src/2019/day18/aoc.h7
-rw-r--r--src/2019/day18/input0
-rw-r--r--src/2019/day18/input00
-rw-r--r--src/2019/day19/README.md0
-rw-r--r--src/2019/day19/aoc.cpp6
-rw-r--r--src/2019/day19/aoc.h7
-rw-r--r--src/2019/day19/input0
-rw-r--r--src/2019/day19/input00
-rw-r--r--src/2019/day20/README.md0
-rw-r--r--src/2019/day20/aoc.cpp6
-rw-r--r--src/2019/day20/aoc.h7
-rw-r--r--src/2019/day20/input0
-rw-r--r--src/2019/day20/input00
-rw-r--r--src/2019/day21/README.md0
-rw-r--r--src/2019/day21/aoc.cpp6
-rw-r--r--src/2019/day21/aoc.h7
-rw-r--r--src/2019/day21/input0
-rw-r--r--src/2019/day21/input00
-rw-r--r--src/2019/day22/README.md0
-rw-r--r--src/2019/day22/aoc.cpp6
-rw-r--r--src/2019/day22/aoc.h7
-rw-r--r--src/2019/day22/input0
-rw-r--r--src/2019/day22/input00
-rw-r--r--src/2019/day23/README.md0
-rw-r--r--src/2019/day23/aoc.cpp6
-rw-r--r--src/2019/day23/aoc.h7
-rw-r--r--src/2019/day23/input0
-rw-r--r--src/2019/day23/input00
-rw-r--r--src/2019/day24/README.md0
-rw-r--r--src/2019/day24/aoc.cpp6
-rw-r--r--src/2019/day24/aoc.h7
-rw-r--r--src/2019/day24/input0
-rw-r--r--src/2019/day24/input00
-rw-r--r--src/2019/day25/README.md0
-rw-r--r--src/2019/day25/aoc.cpp6
-rw-r--r--src/2019/day25/aoc.h7
-rw-r--r--src/2019/day25/input0
-rw-r--r--src/2019/day25/input00
-rw-r--r--src/2020/day10/README.md0
-rw-r--r--src/2020/day10/aoc.cpp6
-rw-r--r--src/2020/day10/aoc.h7
-rw-r--r--src/2020/day10/input0
-rw-r--r--src/2020/day10/input00
-rw-r--r--src/2020/day11/README.md0
-rw-r--r--src/2020/day11/aoc.cpp6
-rw-r--r--src/2020/day11/aoc.h7
-rw-r--r--src/2020/day11/input0
-rw-r--r--src/2020/day11/input00
-rw-r--r--src/2020/day12/README.md0
-rw-r--r--src/2020/day12/aoc.cpp6
-rw-r--r--src/2020/day12/aoc.h7
-rw-r--r--src/2020/day12/input0
-rw-r--r--src/2020/day12/input00
-rw-r--r--src/2020/day13/README.md0
-rw-r--r--src/2020/day13/aoc.cpp6
-rw-r--r--src/2020/day13/aoc.h7
-rw-r--r--src/2020/day13/input0
-rw-r--r--src/2020/day13/input00
-rw-r--r--src/2020/day14/README.md0
-rw-r--r--src/2020/day14/aoc.cpp6
-rw-r--r--src/2020/day14/aoc.h7
-rw-r--r--src/2020/day14/input0
-rw-r--r--src/2020/day14/input00
-rw-r--r--src/2020/day15/README.md0
-rw-r--r--src/2020/day15/aoc.cpp6
-rw-r--r--src/2020/day15/aoc.h7
-rw-r--r--src/2020/day15/input0
-rw-r--r--src/2020/day15/input00
-rw-r--r--src/2020/day16/README.md0
-rw-r--r--src/2020/day16/aoc.cpp6
-rw-r--r--src/2020/day16/aoc.h7
-rw-r--r--src/2020/day16/input0
-rw-r--r--src/2020/day16/input00
-rw-r--r--src/2020/day17/README.md0
-rw-r--r--src/2020/day17/aoc.cpp6
-rw-r--r--src/2020/day17/aoc.h7
-rw-r--r--src/2020/day17/input0
-rw-r--r--src/2020/day17/input00
-rw-r--r--src/2020/day18/README.md0
-rw-r--r--src/2020/day18/aoc.cpp6
-rw-r--r--src/2020/day18/aoc.h7
-rw-r--r--src/2020/day18/input0
-rw-r--r--src/2020/day18/input00
-rw-r--r--src/2020/day19/README.md0
-rw-r--r--src/2020/day19/aoc.cpp6
-rw-r--r--src/2020/day19/aoc.h7
-rw-r--r--src/2020/day19/input0
-rw-r--r--src/2020/day19/input00
-rw-r--r--src/2020/day20/README.md0
-rw-r--r--src/2020/day20/aoc.cpp6
-rw-r--r--src/2020/day20/aoc.h7
-rw-r--r--src/2020/day20/input0
-rw-r--r--src/2020/day20/input00
-rw-r--r--src/2020/day21/README.md0
-rw-r--r--src/2020/day21/aoc.cpp6
-rw-r--r--src/2020/day21/aoc.h7
-rw-r--r--src/2020/day21/input0
-rw-r--r--src/2020/day21/input00
-rw-r--r--src/2020/day22/README.md0
-rw-r--r--src/2020/day22/aoc.cpp6
-rw-r--r--src/2020/day22/aoc.h7
-rw-r--r--src/2020/day22/input0
-rw-r--r--src/2020/day22/input00
-rw-r--r--src/2020/day23/README.md0
-rw-r--r--src/2020/day23/aoc.cpp6
-rw-r--r--src/2020/day23/aoc.h7
-rw-r--r--src/2020/day23/input0
-rw-r--r--src/2020/day23/input00
-rw-r--r--src/2020/day24/README.md0
-rw-r--r--src/2020/day24/aoc.cpp6
-rw-r--r--src/2020/day24/aoc.h7
-rw-r--r--src/2020/day24/input0
-rw-r--r--src/2020/day24/input00
-rw-r--r--src/2020/day25/README.md0
-rw-r--r--src/2020/day25/aoc.cpp6
-rw-r--r--src/2020/day25/aoc.h7
-rw-r--r--src/2020/day25/input0
-rw-r--r--src/2020/day25/input00
-rw-r--r--src/2021/day10/README.md0
-rw-r--r--src/2021/day10/aoc.cpp6
-rw-r--r--src/2021/day10/aoc.h7
-rw-r--r--src/2021/day10/input0
-rw-r--r--src/2021/day10/input00
-rw-r--r--src/2021/day11/README.md0
-rw-r--r--src/2021/day11/aoc.cpp6
-rw-r--r--src/2021/day11/aoc.h7
-rw-r--r--src/2021/day11/input0
-rw-r--r--src/2021/day11/input00
-rw-r--r--src/2021/day12/README.md0
-rw-r--r--src/2021/day12/aoc.cpp6
-rw-r--r--src/2021/day12/aoc.h7
-rw-r--r--src/2021/day12/input0
-rw-r--r--src/2021/day12/input00
-rw-r--r--src/2021/day13/README.md0
-rw-r--r--src/2021/day13/aoc.cpp6
-rw-r--r--src/2021/day13/aoc.h7
-rw-r--r--src/2021/day13/input0
-rw-r--r--src/2021/day13/input00
-rw-r--r--src/2021/day14/README.md0
-rw-r--r--src/2021/day14/aoc.cpp6
-rw-r--r--src/2021/day14/aoc.h7
-rw-r--r--src/2021/day14/input0
-rw-r--r--src/2021/day14/input00
-rw-r--r--src/2021/day15/README.md0
-rw-r--r--src/2021/day15/aoc.cpp6
-rw-r--r--src/2021/day15/aoc.h7
-rw-r--r--src/2021/day15/input0
-rw-r--r--src/2021/day15/input00
-rw-r--r--src/2021/day16/README.md0
-rw-r--r--src/2021/day16/aoc.cpp6
-rw-r--r--src/2021/day16/aoc.h7
-rw-r--r--src/2021/day16/input0
-rw-r--r--src/2021/day16/input00
-rw-r--r--src/2021/day17/README.md0
-rw-r--r--src/2021/day17/aoc.cpp6
-rw-r--r--src/2021/day17/aoc.h7
-rw-r--r--src/2021/day17/input0
-rw-r--r--src/2021/day17/input00
-rw-r--r--src/2021/day18/README.md0
-rw-r--r--src/2021/day18/aoc.cpp6
-rw-r--r--src/2021/day18/aoc.h7
-rw-r--r--src/2021/day18/input0
-rw-r--r--src/2021/day18/input00
-rw-r--r--src/2021/day19/README.md0
-rw-r--r--src/2021/day19/aoc.cpp6
-rw-r--r--src/2021/day19/aoc.h7
-rw-r--r--src/2021/day19/input0
-rw-r--r--src/2021/day19/input00
-rw-r--r--src/2021/day20/README.md0
-rw-r--r--src/2021/day20/aoc.cpp6
-rw-r--r--src/2021/day20/aoc.h7
-rw-r--r--src/2021/day20/input0
-rw-r--r--src/2021/day20/input00
-rw-r--r--src/2021/day21/README.md0
-rw-r--r--src/2021/day21/aoc.cpp6
-rw-r--r--src/2021/day21/aoc.h7
-rw-r--r--src/2021/day21/input0
-rw-r--r--src/2021/day21/input00
-rw-r--r--src/2021/day22/README.md0
-rw-r--r--src/2021/day22/aoc.cpp6
-rw-r--r--src/2021/day22/aoc.h7
-rw-r--r--src/2021/day22/input0
-rw-r--r--src/2021/day22/input00
-rw-r--r--src/2021/day23/README.md0
-rw-r--r--src/2021/day23/aoc.cpp6
-rw-r--r--src/2021/day23/aoc.h7
-rw-r--r--src/2021/day23/input0
-rw-r--r--src/2021/day23/input00
-rw-r--r--src/2021/day24/README.md0
-rw-r--r--src/2021/day24/aoc.cpp6
-rw-r--r--src/2021/day24/aoc.h7
-rw-r--r--src/2021/day24/input0
-rw-r--r--src/2021/day24/input00
-rw-r--r--src/2021/day25/README.md0
-rw-r--r--src/2021/day25/aoc.cpp6
-rw-r--r--src/2021/day25/aoc.h7
-rw-r--r--src/2021/day25/input0
-rw-r--r--src/2021/day25/input00
-rw-r--r--src/CMakeLists.txt103
476 files changed, 1334 insertions, 4 deletions
diff --git a/src/2016/day10/README.md b/src/2016/day10/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day10/README.md
diff --git a/src/2016/day10/aoc.cpp b/src/2016/day10/aoc.cpp
new file mode 100644
index 0000000..b54ebb2
--- /dev/null
+++ b/src/2016/day10/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day10(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day10/aoc.h b/src/2016/day10/aoc.h
new file mode 100644
index 0000000..fb3f80b
--- /dev/null
+++ b/src/2016/day10/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day10(line_view);
+}
diff --git a/src/2016/day10/input b/src/2016/day10/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day10/input
diff --git a/src/2016/day10/input0 b/src/2016/day10/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day10/input0
diff --git a/src/2016/day11/README.md b/src/2016/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day11/README.md
diff --git a/src/2016/day11/aoc.cpp b/src/2016/day11/aoc.cpp
new file mode 100644
index 0000000..2381969
--- /dev/null
+++ b/src/2016/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day11/aoc.h b/src/2016/day11/aoc.h
new file mode 100644
index 0000000..67f350c
--- /dev/null
+++ b/src/2016/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2016/day11/input b/src/2016/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day11/input
diff --git a/src/2016/day11/input0 b/src/2016/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day11/input0
diff --git a/src/2016/day12/README.md b/src/2016/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day12/README.md
diff --git a/src/2016/day12/aoc.cpp b/src/2016/day12/aoc.cpp
new file mode 100644
index 0000000..c32c5b6
--- /dev/null
+++ b/src/2016/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day12/aoc.h b/src/2016/day12/aoc.h
new file mode 100644
index 0000000..1c0bc0a
--- /dev/null
+++ b/src/2016/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2016/day12/input b/src/2016/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day12/input
diff --git a/src/2016/day12/input0 b/src/2016/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day12/input0
diff --git a/src/2016/day13/README.md b/src/2016/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day13/README.md
diff --git a/src/2016/day13/aoc.cpp b/src/2016/day13/aoc.cpp
new file mode 100644
index 0000000..ed39607
--- /dev/null
+++ b/src/2016/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day13/aoc.h b/src/2016/day13/aoc.h
new file mode 100644
index 0000000..9f2db4d
--- /dev/null
+++ b/src/2016/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2016/day13/input b/src/2016/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day13/input
diff --git a/src/2016/day13/input0 b/src/2016/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day13/input0
diff --git a/src/2016/day14/README.md b/src/2016/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day14/README.md
diff --git a/src/2016/day14/aoc.cpp b/src/2016/day14/aoc.cpp
new file mode 100644
index 0000000..c46c374
--- /dev/null
+++ b/src/2016/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day14/aoc.h b/src/2016/day14/aoc.h
new file mode 100644
index 0000000..5f77a81
--- /dev/null
+++ b/src/2016/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2016/day14/input b/src/2016/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day14/input
diff --git a/src/2016/day14/input0 b/src/2016/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day14/input0
diff --git a/src/2016/day15/README.md b/src/2016/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day15/README.md
diff --git a/src/2016/day15/aoc.cpp b/src/2016/day15/aoc.cpp
new file mode 100644
index 0000000..e188291
--- /dev/null
+++ b/src/2016/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day15/aoc.h b/src/2016/day15/aoc.h
new file mode 100644
index 0000000..3f72eb4
--- /dev/null
+++ b/src/2016/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2016/day15/input b/src/2016/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day15/input
diff --git a/src/2016/day15/input0 b/src/2016/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day15/input0
diff --git a/src/2016/day16/README.md b/src/2016/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day16/README.md
diff --git a/src/2016/day16/aoc.cpp b/src/2016/day16/aoc.cpp
new file mode 100644
index 0000000..75bc430
--- /dev/null
+++ b/src/2016/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day16/aoc.h b/src/2016/day16/aoc.h
new file mode 100644
index 0000000..af6267b
--- /dev/null
+++ b/src/2016/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2016/day16/input b/src/2016/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day16/input
diff --git a/src/2016/day16/input0 b/src/2016/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day16/input0
diff --git a/src/2016/day17/README.md b/src/2016/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day17/README.md
diff --git a/src/2016/day17/aoc.cpp b/src/2016/day17/aoc.cpp
new file mode 100644
index 0000000..8696528
--- /dev/null
+++ b/src/2016/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day17/aoc.h b/src/2016/day17/aoc.h
new file mode 100644
index 0000000..5cde607
--- /dev/null
+++ b/src/2016/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2016/day17/input b/src/2016/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day17/input
diff --git a/src/2016/day17/input0 b/src/2016/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day17/input0
diff --git a/src/2016/day18/README.md b/src/2016/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day18/README.md
diff --git a/src/2016/day18/aoc.cpp b/src/2016/day18/aoc.cpp
new file mode 100644
index 0000000..d823d5e
--- /dev/null
+++ b/src/2016/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day18/aoc.h b/src/2016/day18/aoc.h
new file mode 100644
index 0000000..0941031
--- /dev/null
+++ b/src/2016/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2016/day18/input b/src/2016/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day18/input
diff --git a/src/2016/day18/input0 b/src/2016/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day18/input0
diff --git a/src/2016/day19/README.md b/src/2016/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day19/README.md
diff --git a/src/2016/day19/aoc.cpp b/src/2016/day19/aoc.cpp
new file mode 100644
index 0000000..bef17b4
--- /dev/null
+++ b/src/2016/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day19/aoc.h b/src/2016/day19/aoc.h
new file mode 100644
index 0000000..6e75142
--- /dev/null
+++ b/src/2016/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2016/day19/input b/src/2016/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day19/input
diff --git a/src/2016/day19/input0 b/src/2016/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day19/input0
diff --git a/src/2016/day20/README.md b/src/2016/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day20/README.md
diff --git a/src/2016/day20/aoc.cpp b/src/2016/day20/aoc.cpp
new file mode 100644
index 0000000..2a438aa
--- /dev/null
+++ b/src/2016/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day20/aoc.h b/src/2016/day20/aoc.h
new file mode 100644
index 0000000..c48994e
--- /dev/null
+++ b/src/2016/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2016/day20/input b/src/2016/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day20/input
diff --git a/src/2016/day20/input0 b/src/2016/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day20/input0
diff --git a/src/2016/day21/README.md b/src/2016/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day21/README.md
diff --git a/src/2016/day21/aoc.cpp b/src/2016/day21/aoc.cpp
new file mode 100644
index 0000000..cf47315
--- /dev/null
+++ b/src/2016/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day21/aoc.h b/src/2016/day21/aoc.h
new file mode 100644
index 0000000..008e844
--- /dev/null
+++ b/src/2016/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2016/day21/input b/src/2016/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day21/input
diff --git a/src/2016/day21/input0 b/src/2016/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day21/input0
diff --git a/src/2016/day22/README.md b/src/2016/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day22/README.md
diff --git a/src/2016/day22/aoc.cpp b/src/2016/day22/aoc.cpp
new file mode 100644
index 0000000..f115778
--- /dev/null
+++ b/src/2016/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day22/aoc.h b/src/2016/day22/aoc.h
new file mode 100644
index 0000000..b0ad2ba
--- /dev/null
+++ b/src/2016/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2016/day22/input b/src/2016/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day22/input
diff --git a/src/2016/day22/input0 b/src/2016/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day22/input0
diff --git a/src/2016/day23/README.md b/src/2016/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day23/README.md
diff --git a/src/2016/day23/aoc.cpp b/src/2016/day23/aoc.cpp
new file mode 100644
index 0000000..56304eb
--- /dev/null
+++ b/src/2016/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day23/aoc.h b/src/2016/day23/aoc.h
new file mode 100644
index 0000000..2621f71
--- /dev/null
+++ b/src/2016/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2016/day23/input b/src/2016/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day23/input
diff --git a/src/2016/day23/input0 b/src/2016/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day23/input0
diff --git a/src/2016/day24/README.md b/src/2016/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day24/README.md
diff --git a/src/2016/day24/aoc.cpp b/src/2016/day24/aoc.cpp
new file mode 100644
index 0000000..3a5dc38
--- /dev/null
+++ b/src/2016/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day24/aoc.h b/src/2016/day24/aoc.h
new file mode 100644
index 0000000..302152f
--- /dev/null
+++ b/src/2016/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2016/day24/input b/src/2016/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day24/input
diff --git a/src/2016/day24/input0 b/src/2016/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day24/input0
diff --git a/src/2016/day25/README.md b/src/2016/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day25/README.md
diff --git a/src/2016/day25/aoc.cpp b/src/2016/day25/aoc.cpp
new file mode 100644
index 0000000..7932389
--- /dev/null
+++ b/src/2016/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2016 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2016
diff --git a/src/2016/day25/aoc.h b/src/2016/day25/aoc.h
new file mode 100644
index 0000000..e4b388f
--- /dev/null
+++ b/src/2016/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2016 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2016/day25/input b/src/2016/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day25/input
diff --git a/src/2016/day25/input0 b/src/2016/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2016/day25/input0
diff --git a/src/2017/day10/README.md b/src/2017/day10/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day10/README.md
diff --git a/src/2017/day10/aoc.cpp b/src/2017/day10/aoc.cpp
new file mode 100644
index 0000000..9ba0d48
--- /dev/null
+++ b/src/2017/day10/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day10(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day10/aoc.h b/src/2017/day10/aoc.h
new file mode 100644
index 0000000..9fea13e
--- /dev/null
+++ b/src/2017/day10/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day10(line_view);
+}
diff --git a/src/2017/day10/input b/src/2017/day10/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day10/input
diff --git a/src/2017/day10/input0 b/src/2017/day10/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day10/input0
diff --git a/src/2017/day11/README.md b/src/2017/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day11/README.md
diff --git a/src/2017/day11/aoc.cpp b/src/2017/day11/aoc.cpp
new file mode 100644
index 0000000..f6b5864
--- /dev/null
+++ b/src/2017/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day11/aoc.h b/src/2017/day11/aoc.h
new file mode 100644
index 0000000..04c7b87
--- /dev/null
+++ b/src/2017/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2017/day11/input b/src/2017/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day11/input
diff --git a/src/2017/day11/input0 b/src/2017/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day11/input0
diff --git a/src/2017/day12/README.md b/src/2017/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day12/README.md
diff --git a/src/2017/day12/aoc.cpp b/src/2017/day12/aoc.cpp
new file mode 100644
index 0000000..30f0501
--- /dev/null
+++ b/src/2017/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day12/aoc.h b/src/2017/day12/aoc.h
new file mode 100644
index 0000000..527b851
--- /dev/null
+++ b/src/2017/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2017/day12/input b/src/2017/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day12/input
diff --git a/src/2017/day12/input0 b/src/2017/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day12/input0
diff --git a/src/2017/day13/README.md b/src/2017/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day13/README.md
diff --git a/src/2017/day13/aoc.cpp b/src/2017/day13/aoc.cpp
new file mode 100644
index 0000000..e112b3e
--- /dev/null
+++ b/src/2017/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day13/aoc.h b/src/2017/day13/aoc.h
new file mode 100644
index 0000000..5baa78a
--- /dev/null
+++ b/src/2017/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2017/day13/input b/src/2017/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day13/input
diff --git a/src/2017/day13/input0 b/src/2017/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day13/input0
diff --git a/src/2017/day14/README.md b/src/2017/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day14/README.md
diff --git a/src/2017/day14/aoc.cpp b/src/2017/day14/aoc.cpp
new file mode 100644
index 0000000..925b403
--- /dev/null
+++ b/src/2017/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day14/aoc.h b/src/2017/day14/aoc.h
new file mode 100644
index 0000000..d346d57
--- /dev/null
+++ b/src/2017/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2017/day14/input b/src/2017/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day14/input
diff --git a/src/2017/day14/input0 b/src/2017/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day14/input0
diff --git a/src/2017/day15/README.md b/src/2017/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day15/README.md
diff --git a/src/2017/day15/aoc.cpp b/src/2017/day15/aoc.cpp
new file mode 100644
index 0000000..bf7b729
--- /dev/null
+++ b/src/2017/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day15/aoc.h b/src/2017/day15/aoc.h
new file mode 100644
index 0000000..987227e
--- /dev/null
+++ b/src/2017/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2017/day15/input b/src/2017/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day15/input
diff --git a/src/2017/day15/input0 b/src/2017/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day15/input0
diff --git a/src/2017/day16/README.md b/src/2017/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day16/README.md
diff --git a/src/2017/day16/aoc.cpp b/src/2017/day16/aoc.cpp
new file mode 100644
index 0000000..6b163a4
--- /dev/null
+++ b/src/2017/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day16/aoc.h b/src/2017/day16/aoc.h
new file mode 100644
index 0000000..ef67b9f
--- /dev/null
+++ b/src/2017/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2017/day16/input b/src/2017/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day16/input
diff --git a/src/2017/day16/input0 b/src/2017/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day16/input0
diff --git a/src/2017/day17/README.md b/src/2017/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day17/README.md
diff --git a/src/2017/day17/aoc.cpp b/src/2017/day17/aoc.cpp
new file mode 100644
index 0000000..ed4a42b
--- /dev/null
+++ b/src/2017/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day17/aoc.h b/src/2017/day17/aoc.h
new file mode 100644
index 0000000..e8b7659
--- /dev/null
+++ b/src/2017/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2017/day17/input b/src/2017/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day17/input
diff --git a/src/2017/day17/input0 b/src/2017/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day17/input0
diff --git a/src/2017/day18/README.md b/src/2017/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day18/README.md
diff --git a/src/2017/day18/aoc.cpp b/src/2017/day18/aoc.cpp
new file mode 100644
index 0000000..1308c9e
--- /dev/null
+++ b/src/2017/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day18/aoc.h b/src/2017/day18/aoc.h
new file mode 100644
index 0000000..0127647
--- /dev/null
+++ b/src/2017/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2017/day18/input b/src/2017/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day18/input
diff --git a/src/2017/day18/input0 b/src/2017/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day18/input0
diff --git a/src/2017/day19/README.md b/src/2017/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day19/README.md
diff --git a/src/2017/day19/aoc.cpp b/src/2017/day19/aoc.cpp
new file mode 100644
index 0000000..8056eb8
--- /dev/null
+++ b/src/2017/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day19/aoc.h b/src/2017/day19/aoc.h
new file mode 100644
index 0000000..4cc67ef
--- /dev/null
+++ b/src/2017/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2017/day19/input b/src/2017/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day19/input
diff --git a/src/2017/day19/input0 b/src/2017/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day19/input0
diff --git a/src/2017/day20/README.md b/src/2017/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day20/README.md
diff --git a/src/2017/day20/aoc.cpp b/src/2017/day20/aoc.cpp
new file mode 100644
index 0000000..74f06a8
--- /dev/null
+++ b/src/2017/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day20/aoc.h b/src/2017/day20/aoc.h
new file mode 100644
index 0000000..973f018
--- /dev/null
+++ b/src/2017/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2017/day20/input b/src/2017/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day20/input
diff --git a/src/2017/day20/input0 b/src/2017/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day20/input0
diff --git a/src/2017/day21/README.md b/src/2017/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day21/README.md
diff --git a/src/2017/day21/aoc.cpp b/src/2017/day21/aoc.cpp
new file mode 100644
index 0000000..706fa8a
--- /dev/null
+++ b/src/2017/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day21/aoc.h b/src/2017/day21/aoc.h
new file mode 100644
index 0000000..c41c88a
--- /dev/null
+++ b/src/2017/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2017/day21/input b/src/2017/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day21/input
diff --git a/src/2017/day21/input0 b/src/2017/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day21/input0
diff --git a/src/2017/day22/README.md b/src/2017/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day22/README.md
diff --git a/src/2017/day22/aoc.cpp b/src/2017/day22/aoc.cpp
new file mode 100644
index 0000000..b2e2dfb
--- /dev/null
+++ b/src/2017/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day22/aoc.h b/src/2017/day22/aoc.h
new file mode 100644
index 0000000..6c9c549
--- /dev/null
+++ b/src/2017/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2017/day22/input b/src/2017/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day22/input
diff --git a/src/2017/day22/input0 b/src/2017/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day22/input0
diff --git a/src/2017/day23/README.md b/src/2017/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day23/README.md
diff --git a/src/2017/day23/aoc.cpp b/src/2017/day23/aoc.cpp
new file mode 100644
index 0000000..444cec9
--- /dev/null
+++ b/src/2017/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day23/aoc.h b/src/2017/day23/aoc.h
new file mode 100644
index 0000000..00b5a9a
--- /dev/null
+++ b/src/2017/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2017/day23/input b/src/2017/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day23/input
diff --git a/src/2017/day23/input0 b/src/2017/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day23/input0
diff --git a/src/2017/day24/README.md b/src/2017/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day24/README.md
diff --git a/src/2017/day24/aoc.cpp b/src/2017/day24/aoc.cpp
new file mode 100644
index 0000000..b4e87c1
--- /dev/null
+++ b/src/2017/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day24/aoc.h b/src/2017/day24/aoc.h
new file mode 100644
index 0000000..d102bfa
--- /dev/null
+++ b/src/2017/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2017/day24/input b/src/2017/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day24/input
diff --git a/src/2017/day24/input0 b/src/2017/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day24/input0
diff --git a/src/2017/day25/README.md b/src/2017/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day25/README.md
diff --git a/src/2017/day25/aoc.cpp b/src/2017/day25/aoc.cpp
new file mode 100644
index 0000000..702924a
--- /dev/null
+++ b/src/2017/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2017 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2017
diff --git a/src/2017/day25/aoc.h b/src/2017/day25/aoc.h
new file mode 100644
index 0000000..b8972d5
--- /dev/null
+++ b/src/2017/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2017 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2017/day25/input b/src/2017/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day25/input
diff --git a/src/2017/day25/input0 b/src/2017/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2017/day25/input0
diff --git a/src/2018/day10/README.md b/src/2018/day10/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day10/README.md
diff --git a/src/2018/day10/aoc.cpp b/src/2018/day10/aoc.cpp
new file mode 100644
index 0000000..53bc64e
--- /dev/null
+++ b/src/2018/day10/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day10(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day10/aoc.h b/src/2018/day10/aoc.h
new file mode 100644
index 0000000..871aced
--- /dev/null
+++ b/src/2018/day10/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day10(line_view);
+}
diff --git a/src/2018/day10/input b/src/2018/day10/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day10/input
diff --git a/src/2018/day10/input0 b/src/2018/day10/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day10/input0
diff --git a/src/2018/day11/README.md b/src/2018/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day11/README.md
diff --git a/src/2018/day11/aoc.cpp b/src/2018/day11/aoc.cpp
new file mode 100644
index 0000000..79b110f
--- /dev/null
+++ b/src/2018/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day11/aoc.h b/src/2018/day11/aoc.h
new file mode 100644
index 0000000..fa86335
--- /dev/null
+++ b/src/2018/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2018/day11/input b/src/2018/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day11/input
diff --git a/src/2018/day11/input0 b/src/2018/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day11/input0
diff --git a/src/2018/day12/README.md b/src/2018/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day12/README.md
diff --git a/src/2018/day12/aoc.cpp b/src/2018/day12/aoc.cpp
new file mode 100644
index 0000000..e128450
--- /dev/null
+++ b/src/2018/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day12/aoc.h b/src/2018/day12/aoc.h
new file mode 100644
index 0000000..ef700cd
--- /dev/null
+++ b/src/2018/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2018/day12/input b/src/2018/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day12/input
diff --git a/src/2018/day12/input0 b/src/2018/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day12/input0
diff --git a/src/2018/day13/README.md b/src/2018/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day13/README.md
diff --git a/src/2018/day13/aoc.cpp b/src/2018/day13/aoc.cpp
new file mode 100644
index 0000000..af15fbe
--- /dev/null
+++ b/src/2018/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day13/aoc.h b/src/2018/day13/aoc.h
new file mode 100644
index 0000000..0e28898
--- /dev/null
+++ b/src/2018/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2018/day13/input b/src/2018/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day13/input
diff --git a/src/2018/day13/input0 b/src/2018/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day13/input0
diff --git a/src/2018/day14/README.md b/src/2018/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day14/README.md
diff --git a/src/2018/day14/aoc.cpp b/src/2018/day14/aoc.cpp
new file mode 100644
index 0000000..b79656d
--- /dev/null
+++ b/src/2018/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day14/aoc.h b/src/2018/day14/aoc.h
new file mode 100644
index 0000000..24ef7a2
--- /dev/null
+++ b/src/2018/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2018/day14/input b/src/2018/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day14/input
diff --git a/src/2018/day14/input0 b/src/2018/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day14/input0
diff --git a/src/2018/day15/README.md b/src/2018/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day15/README.md
diff --git a/src/2018/day15/aoc.cpp b/src/2018/day15/aoc.cpp
new file mode 100644
index 0000000..8ae7ef0
--- /dev/null
+++ b/src/2018/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day15/aoc.h b/src/2018/day15/aoc.h
new file mode 100644
index 0000000..031bc7c
--- /dev/null
+++ b/src/2018/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2018/day15/input b/src/2018/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day15/input
diff --git a/src/2018/day15/input0 b/src/2018/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day15/input0
diff --git a/src/2018/day16/README.md b/src/2018/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day16/README.md
diff --git a/src/2018/day16/aoc.cpp b/src/2018/day16/aoc.cpp
new file mode 100644
index 0000000..3c1f8a7
--- /dev/null
+++ b/src/2018/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day16/aoc.h b/src/2018/day16/aoc.h
new file mode 100644
index 0000000..16f7819
--- /dev/null
+++ b/src/2018/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2018/day16/input b/src/2018/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day16/input
diff --git a/src/2018/day16/input0 b/src/2018/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day16/input0
diff --git a/src/2018/day17/README.md b/src/2018/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day17/README.md
diff --git a/src/2018/day17/aoc.cpp b/src/2018/day17/aoc.cpp
new file mode 100644
index 0000000..5d34eb8
--- /dev/null
+++ b/src/2018/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day17/aoc.h b/src/2018/day17/aoc.h
new file mode 100644
index 0000000..4b47b22
--- /dev/null
+++ b/src/2018/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2018/day17/input b/src/2018/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day17/input
diff --git a/src/2018/day17/input0 b/src/2018/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day17/input0
diff --git a/src/2018/day18/README.md b/src/2018/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day18/README.md
diff --git a/src/2018/day18/aoc.cpp b/src/2018/day18/aoc.cpp
new file mode 100644
index 0000000..5fd0a53
--- /dev/null
+++ b/src/2018/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day18/aoc.h b/src/2018/day18/aoc.h
new file mode 100644
index 0000000..76c4527
--- /dev/null
+++ b/src/2018/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2018/day18/input b/src/2018/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day18/input
diff --git a/src/2018/day18/input0 b/src/2018/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day18/input0
diff --git a/src/2018/day19/README.md b/src/2018/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day19/README.md
diff --git a/src/2018/day19/aoc.cpp b/src/2018/day19/aoc.cpp
new file mode 100644
index 0000000..b0582e0
--- /dev/null
+++ b/src/2018/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day19/aoc.h b/src/2018/day19/aoc.h
new file mode 100644
index 0000000..cec9b33
--- /dev/null
+++ b/src/2018/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2018/day19/input b/src/2018/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day19/input
diff --git a/src/2018/day19/input0 b/src/2018/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day19/input0
diff --git a/src/2018/day20/README.md b/src/2018/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day20/README.md
diff --git a/src/2018/day20/aoc.cpp b/src/2018/day20/aoc.cpp
new file mode 100644
index 0000000..44865d6
--- /dev/null
+++ b/src/2018/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day20/aoc.h b/src/2018/day20/aoc.h
new file mode 100644
index 0000000..dd091a9
--- /dev/null
+++ b/src/2018/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2018/day20/input b/src/2018/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day20/input
diff --git a/src/2018/day20/input0 b/src/2018/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day20/input0
diff --git a/src/2018/day21/README.md b/src/2018/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day21/README.md
diff --git a/src/2018/day21/aoc.cpp b/src/2018/day21/aoc.cpp
new file mode 100644
index 0000000..14489f3
--- /dev/null
+++ b/src/2018/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day21/aoc.h b/src/2018/day21/aoc.h
new file mode 100644
index 0000000..ddb5977
--- /dev/null
+++ b/src/2018/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2018/day21/input b/src/2018/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day21/input
diff --git a/src/2018/day21/input0 b/src/2018/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day21/input0
diff --git a/src/2018/day22/README.md b/src/2018/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day22/README.md
diff --git a/src/2018/day22/aoc.cpp b/src/2018/day22/aoc.cpp
new file mode 100644
index 0000000..5852798
--- /dev/null
+++ b/src/2018/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day22/aoc.h b/src/2018/day22/aoc.h
new file mode 100644
index 0000000..ee26dc5
--- /dev/null
+++ b/src/2018/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2018/day22/input b/src/2018/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day22/input
diff --git a/src/2018/day22/input0 b/src/2018/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day22/input0
diff --git a/src/2018/day23/README.md b/src/2018/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day23/README.md
diff --git a/src/2018/day23/aoc.cpp b/src/2018/day23/aoc.cpp
new file mode 100644
index 0000000..0222e66
--- /dev/null
+++ b/src/2018/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day23/aoc.h b/src/2018/day23/aoc.h
new file mode 100644
index 0000000..4ba18da
--- /dev/null
+++ b/src/2018/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2018/day23/input b/src/2018/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day23/input
diff --git a/src/2018/day23/input0 b/src/2018/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day23/input0
diff --git a/src/2018/day24/README.md b/src/2018/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day24/README.md
diff --git a/src/2018/day24/aoc.cpp b/src/2018/day24/aoc.cpp
new file mode 100644
index 0000000..8595080
--- /dev/null
+++ b/src/2018/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day24/aoc.h b/src/2018/day24/aoc.h
new file mode 100644
index 0000000..f84ecb8
--- /dev/null
+++ b/src/2018/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2018/day24/input b/src/2018/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day24/input
diff --git a/src/2018/day24/input0 b/src/2018/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day24/input0
diff --git a/src/2018/day25/README.md b/src/2018/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day25/README.md
diff --git a/src/2018/day25/aoc.cpp b/src/2018/day25/aoc.cpp
new file mode 100644
index 0000000..da3b596
--- /dev/null
+++ b/src/2018/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2018 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2018
diff --git a/src/2018/day25/aoc.h b/src/2018/day25/aoc.h
new file mode 100644
index 0000000..e6a96e4
--- /dev/null
+++ b/src/2018/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2018 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2018/day25/input b/src/2018/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day25/input
diff --git a/src/2018/day25/input0 b/src/2018/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2018/day25/input0
diff --git a/src/2019/day11/README.md b/src/2019/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day11/README.md
diff --git a/src/2019/day11/aoc.cpp b/src/2019/day11/aoc.cpp
new file mode 100644
index 0000000..22f45f2
--- /dev/null
+++ b/src/2019/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day11/aoc.h b/src/2019/day11/aoc.h
new file mode 100644
index 0000000..2b6dac9
--- /dev/null
+++ b/src/2019/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2019/day11/input b/src/2019/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day11/input
diff --git a/src/2019/day11/input0 b/src/2019/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day11/input0
diff --git a/src/2019/day12/README.md b/src/2019/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day12/README.md
diff --git a/src/2019/day12/aoc.cpp b/src/2019/day12/aoc.cpp
new file mode 100644
index 0000000..079a4a0
--- /dev/null
+++ b/src/2019/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day12/aoc.h b/src/2019/day12/aoc.h
new file mode 100644
index 0000000..e9e10e4
--- /dev/null
+++ b/src/2019/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2019/day12/input b/src/2019/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day12/input
diff --git a/src/2019/day12/input0 b/src/2019/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day12/input0
diff --git a/src/2019/day13/README.md b/src/2019/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day13/README.md
diff --git a/src/2019/day13/aoc.cpp b/src/2019/day13/aoc.cpp
new file mode 100644
index 0000000..52f4bb0
--- /dev/null
+++ b/src/2019/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day13/aoc.h b/src/2019/day13/aoc.h
new file mode 100644
index 0000000..21e85cc
--- /dev/null
+++ b/src/2019/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2019/day13/input b/src/2019/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day13/input
diff --git a/src/2019/day13/input0 b/src/2019/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day13/input0
diff --git a/src/2019/day14/README.md b/src/2019/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day14/README.md
diff --git a/src/2019/day14/aoc.cpp b/src/2019/day14/aoc.cpp
new file mode 100644
index 0000000..d7b000b
--- /dev/null
+++ b/src/2019/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day14/aoc.h b/src/2019/day14/aoc.h
new file mode 100644
index 0000000..c0cd6c6
--- /dev/null
+++ b/src/2019/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2019/day14/input b/src/2019/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day14/input
diff --git a/src/2019/day14/input0 b/src/2019/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day14/input0
diff --git a/src/2019/day15/README.md b/src/2019/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day15/README.md
diff --git a/src/2019/day15/aoc.cpp b/src/2019/day15/aoc.cpp
new file mode 100644
index 0000000..9b2d174
--- /dev/null
+++ b/src/2019/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day15/aoc.h b/src/2019/day15/aoc.h
new file mode 100644
index 0000000..1ad06c8
--- /dev/null
+++ b/src/2019/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2019/day15/input b/src/2019/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day15/input
diff --git a/src/2019/day15/input0 b/src/2019/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day15/input0
diff --git a/src/2019/day16/README.md b/src/2019/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day16/README.md
diff --git a/src/2019/day16/aoc.cpp b/src/2019/day16/aoc.cpp
new file mode 100644
index 0000000..dd6cd57
--- /dev/null
+++ b/src/2019/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day16/aoc.h b/src/2019/day16/aoc.h
new file mode 100644
index 0000000..7cabac2
--- /dev/null
+++ b/src/2019/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2019/day16/input b/src/2019/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day16/input
diff --git a/src/2019/day16/input0 b/src/2019/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day16/input0
diff --git a/src/2019/day17/README.md b/src/2019/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day17/README.md
diff --git a/src/2019/day17/aoc.cpp b/src/2019/day17/aoc.cpp
new file mode 100644
index 0000000..d5bf50b
--- /dev/null
+++ b/src/2019/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day17/aoc.h b/src/2019/day17/aoc.h
new file mode 100644
index 0000000..7e232b9
--- /dev/null
+++ b/src/2019/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2019/day17/input b/src/2019/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day17/input
diff --git a/src/2019/day17/input0 b/src/2019/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day17/input0
diff --git a/src/2019/day18/README.md b/src/2019/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day18/README.md
diff --git a/src/2019/day18/aoc.cpp b/src/2019/day18/aoc.cpp
new file mode 100644
index 0000000..6468c68
--- /dev/null
+++ b/src/2019/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day18/aoc.h b/src/2019/day18/aoc.h
new file mode 100644
index 0000000..20ba771
--- /dev/null
+++ b/src/2019/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2019/day18/input b/src/2019/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day18/input
diff --git a/src/2019/day18/input0 b/src/2019/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day18/input0
diff --git a/src/2019/day19/README.md b/src/2019/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day19/README.md
diff --git a/src/2019/day19/aoc.cpp b/src/2019/day19/aoc.cpp
new file mode 100644
index 0000000..63a0fcb
--- /dev/null
+++ b/src/2019/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day19/aoc.h b/src/2019/day19/aoc.h
new file mode 100644
index 0000000..5f67b44
--- /dev/null
+++ b/src/2019/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2019/day19/input b/src/2019/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day19/input
diff --git a/src/2019/day19/input0 b/src/2019/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day19/input0
diff --git a/src/2019/day20/README.md b/src/2019/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day20/README.md
diff --git a/src/2019/day20/aoc.cpp b/src/2019/day20/aoc.cpp
new file mode 100644
index 0000000..efc6b37
--- /dev/null
+++ b/src/2019/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day20/aoc.h b/src/2019/day20/aoc.h
new file mode 100644
index 0000000..e6d0b40
--- /dev/null
+++ b/src/2019/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2019/day20/input b/src/2019/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day20/input
diff --git a/src/2019/day20/input0 b/src/2019/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day20/input0
diff --git a/src/2019/day21/README.md b/src/2019/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day21/README.md
diff --git a/src/2019/day21/aoc.cpp b/src/2019/day21/aoc.cpp
new file mode 100644
index 0000000..07be61e
--- /dev/null
+++ b/src/2019/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day21/aoc.h b/src/2019/day21/aoc.h
new file mode 100644
index 0000000..0eb40d4
--- /dev/null
+++ b/src/2019/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2019/day21/input b/src/2019/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day21/input
diff --git a/src/2019/day21/input0 b/src/2019/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day21/input0
diff --git a/src/2019/day22/README.md b/src/2019/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day22/README.md
diff --git a/src/2019/day22/aoc.cpp b/src/2019/day22/aoc.cpp
new file mode 100644
index 0000000..ac51d62
--- /dev/null
+++ b/src/2019/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day22/aoc.h b/src/2019/day22/aoc.h
new file mode 100644
index 0000000..004ed61
--- /dev/null
+++ b/src/2019/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2019/day22/input b/src/2019/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day22/input
diff --git a/src/2019/day22/input0 b/src/2019/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day22/input0
diff --git a/src/2019/day23/README.md b/src/2019/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day23/README.md
diff --git a/src/2019/day23/aoc.cpp b/src/2019/day23/aoc.cpp
new file mode 100644
index 0000000..9f6eb39
--- /dev/null
+++ b/src/2019/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day23/aoc.h b/src/2019/day23/aoc.h
new file mode 100644
index 0000000..fd4dff0
--- /dev/null
+++ b/src/2019/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2019/day23/input b/src/2019/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day23/input
diff --git a/src/2019/day23/input0 b/src/2019/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day23/input0
diff --git a/src/2019/day24/README.md b/src/2019/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day24/README.md
diff --git a/src/2019/day24/aoc.cpp b/src/2019/day24/aoc.cpp
new file mode 100644
index 0000000..de35463
--- /dev/null
+++ b/src/2019/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day24/aoc.h b/src/2019/day24/aoc.h
new file mode 100644
index 0000000..df4676a
--- /dev/null
+++ b/src/2019/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2019/day24/input b/src/2019/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day24/input
diff --git a/src/2019/day24/input0 b/src/2019/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day24/input0
diff --git a/src/2019/day25/README.md b/src/2019/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day25/README.md
diff --git a/src/2019/day25/aoc.cpp b/src/2019/day25/aoc.cpp
new file mode 100644
index 0000000..a48e2be
--- /dev/null
+++ b/src/2019/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2019 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2019
diff --git a/src/2019/day25/aoc.h b/src/2019/day25/aoc.h
new file mode 100644
index 0000000..c27d6f1
--- /dev/null
+++ b/src/2019/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2019 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2019/day25/input b/src/2019/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day25/input
diff --git a/src/2019/day25/input0 b/src/2019/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2019/day25/input0
diff --git a/src/2020/day10/README.md b/src/2020/day10/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day10/README.md
diff --git a/src/2020/day10/aoc.cpp b/src/2020/day10/aoc.cpp
new file mode 100644
index 0000000..8173037
--- /dev/null
+++ b/src/2020/day10/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day10(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day10/aoc.h b/src/2020/day10/aoc.h
new file mode 100644
index 0000000..64696cd
--- /dev/null
+++ b/src/2020/day10/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day10(line_view);
+}
diff --git a/src/2020/day10/input b/src/2020/day10/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day10/input
diff --git a/src/2020/day10/input0 b/src/2020/day10/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day10/input0
diff --git a/src/2020/day11/README.md b/src/2020/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day11/README.md
diff --git a/src/2020/day11/aoc.cpp b/src/2020/day11/aoc.cpp
new file mode 100644
index 0000000..e2a422a
--- /dev/null
+++ b/src/2020/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day11/aoc.h b/src/2020/day11/aoc.h
new file mode 100644
index 0000000..548c25b
--- /dev/null
+++ b/src/2020/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2020/day11/input b/src/2020/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day11/input
diff --git a/src/2020/day11/input0 b/src/2020/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day11/input0
diff --git a/src/2020/day12/README.md b/src/2020/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day12/README.md
diff --git a/src/2020/day12/aoc.cpp b/src/2020/day12/aoc.cpp
new file mode 100644
index 0000000..65fba49
--- /dev/null
+++ b/src/2020/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day12/aoc.h b/src/2020/day12/aoc.h
new file mode 100644
index 0000000..0560c22
--- /dev/null
+++ b/src/2020/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2020/day12/input b/src/2020/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day12/input
diff --git a/src/2020/day12/input0 b/src/2020/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day12/input0
diff --git a/src/2020/day13/README.md b/src/2020/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day13/README.md
diff --git a/src/2020/day13/aoc.cpp b/src/2020/day13/aoc.cpp
new file mode 100644
index 0000000..711bb85
--- /dev/null
+++ b/src/2020/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day13/aoc.h b/src/2020/day13/aoc.h
new file mode 100644
index 0000000..85e9582
--- /dev/null
+++ b/src/2020/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2020/day13/input b/src/2020/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day13/input
diff --git a/src/2020/day13/input0 b/src/2020/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day13/input0
diff --git a/src/2020/day14/README.md b/src/2020/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day14/README.md
diff --git a/src/2020/day14/aoc.cpp b/src/2020/day14/aoc.cpp
new file mode 100644
index 0000000..5040ebc
--- /dev/null
+++ b/src/2020/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day14/aoc.h b/src/2020/day14/aoc.h
new file mode 100644
index 0000000..d921959
--- /dev/null
+++ b/src/2020/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2020/day14/input b/src/2020/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day14/input
diff --git a/src/2020/day14/input0 b/src/2020/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day14/input0
diff --git a/src/2020/day15/README.md b/src/2020/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day15/README.md
diff --git a/src/2020/day15/aoc.cpp b/src/2020/day15/aoc.cpp
new file mode 100644
index 0000000..5d58382
--- /dev/null
+++ b/src/2020/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day15/aoc.h b/src/2020/day15/aoc.h
new file mode 100644
index 0000000..68a1a21
--- /dev/null
+++ b/src/2020/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2020/day15/input b/src/2020/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day15/input
diff --git a/src/2020/day15/input0 b/src/2020/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day15/input0
diff --git a/src/2020/day16/README.md b/src/2020/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day16/README.md
diff --git a/src/2020/day16/aoc.cpp b/src/2020/day16/aoc.cpp
new file mode 100644
index 0000000..fc0d1fd
--- /dev/null
+++ b/src/2020/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day16/aoc.h b/src/2020/day16/aoc.h
new file mode 100644
index 0000000..364a2cf
--- /dev/null
+++ b/src/2020/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2020/day16/input b/src/2020/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day16/input
diff --git a/src/2020/day16/input0 b/src/2020/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day16/input0
diff --git a/src/2020/day17/README.md b/src/2020/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day17/README.md
diff --git a/src/2020/day17/aoc.cpp b/src/2020/day17/aoc.cpp
new file mode 100644
index 0000000..bf38fa8
--- /dev/null
+++ b/src/2020/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day17/aoc.h b/src/2020/day17/aoc.h
new file mode 100644
index 0000000..7d40528
--- /dev/null
+++ b/src/2020/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2020/day17/input b/src/2020/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day17/input
diff --git a/src/2020/day17/input0 b/src/2020/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day17/input0
diff --git a/src/2020/day18/README.md b/src/2020/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day18/README.md
diff --git a/src/2020/day18/aoc.cpp b/src/2020/day18/aoc.cpp
new file mode 100644
index 0000000..38bb8eb
--- /dev/null
+++ b/src/2020/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day18/aoc.h b/src/2020/day18/aoc.h
new file mode 100644
index 0000000..73a40ff
--- /dev/null
+++ b/src/2020/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2020/day18/input b/src/2020/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day18/input
diff --git a/src/2020/day18/input0 b/src/2020/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day18/input0
diff --git a/src/2020/day19/README.md b/src/2020/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day19/README.md
diff --git a/src/2020/day19/aoc.cpp b/src/2020/day19/aoc.cpp
new file mode 100644
index 0000000..99a704c
--- /dev/null
+++ b/src/2020/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day19/aoc.h b/src/2020/day19/aoc.h
new file mode 100644
index 0000000..3fae59c
--- /dev/null
+++ b/src/2020/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2020/day19/input b/src/2020/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day19/input
diff --git a/src/2020/day19/input0 b/src/2020/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day19/input0
diff --git a/src/2020/day20/README.md b/src/2020/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day20/README.md
diff --git a/src/2020/day20/aoc.cpp b/src/2020/day20/aoc.cpp
new file mode 100644
index 0000000..43f3840
--- /dev/null
+++ b/src/2020/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day20/aoc.h b/src/2020/day20/aoc.h
new file mode 100644
index 0000000..432562f
--- /dev/null
+++ b/src/2020/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2020/day20/input b/src/2020/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day20/input
diff --git a/src/2020/day20/input0 b/src/2020/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day20/input0
diff --git a/src/2020/day21/README.md b/src/2020/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day21/README.md
diff --git a/src/2020/day21/aoc.cpp b/src/2020/day21/aoc.cpp
new file mode 100644
index 0000000..e8ea948
--- /dev/null
+++ b/src/2020/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day21/aoc.h b/src/2020/day21/aoc.h
new file mode 100644
index 0000000..93806de
--- /dev/null
+++ b/src/2020/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2020/day21/input b/src/2020/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day21/input
diff --git a/src/2020/day21/input0 b/src/2020/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day21/input0
diff --git a/src/2020/day22/README.md b/src/2020/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day22/README.md
diff --git a/src/2020/day22/aoc.cpp b/src/2020/day22/aoc.cpp
new file mode 100644
index 0000000..77d3007
--- /dev/null
+++ b/src/2020/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day22/aoc.h b/src/2020/day22/aoc.h
new file mode 100644
index 0000000..01a3c82
--- /dev/null
+++ b/src/2020/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2020/day22/input b/src/2020/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day22/input
diff --git a/src/2020/day22/input0 b/src/2020/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day22/input0
diff --git a/src/2020/day23/README.md b/src/2020/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day23/README.md
diff --git a/src/2020/day23/aoc.cpp b/src/2020/day23/aoc.cpp
new file mode 100644
index 0000000..e4ed3d5
--- /dev/null
+++ b/src/2020/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day23/aoc.h b/src/2020/day23/aoc.h
new file mode 100644
index 0000000..6d77a1f
--- /dev/null
+++ b/src/2020/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2020/day23/input b/src/2020/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day23/input
diff --git a/src/2020/day23/input0 b/src/2020/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day23/input0
diff --git a/src/2020/day24/README.md b/src/2020/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day24/README.md
diff --git a/src/2020/day24/aoc.cpp b/src/2020/day24/aoc.cpp
new file mode 100644
index 0000000..9e92150
--- /dev/null
+++ b/src/2020/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day24/aoc.h b/src/2020/day24/aoc.h
new file mode 100644
index 0000000..e5ffedf
--- /dev/null
+++ b/src/2020/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2020/day24/input b/src/2020/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day24/input
diff --git a/src/2020/day24/input0 b/src/2020/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day24/input0
diff --git a/src/2020/day25/README.md b/src/2020/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day25/README.md
diff --git a/src/2020/day25/aoc.cpp b/src/2020/day25/aoc.cpp
new file mode 100644
index 0000000..f637282
--- /dev/null
+++ b/src/2020/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2020 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2020
diff --git a/src/2020/day25/aoc.h b/src/2020/day25/aoc.h
new file mode 100644
index 0000000..b5da8ba
--- /dev/null
+++ b/src/2020/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2020 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2020/day25/input b/src/2020/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day25/input
diff --git a/src/2020/day25/input0 b/src/2020/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2020/day25/input0
diff --git a/src/2021/day10/README.md b/src/2021/day10/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day10/README.md
diff --git a/src/2021/day10/aoc.cpp b/src/2021/day10/aoc.cpp
new file mode 100644
index 0000000..6cbb484
--- /dev/null
+++ b/src/2021/day10/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day10(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day10/aoc.h b/src/2021/day10/aoc.h
new file mode 100644
index 0000000..00731ca
--- /dev/null
+++ b/src/2021/day10/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day10(line_view);
+}
diff --git a/src/2021/day10/input b/src/2021/day10/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day10/input
diff --git a/src/2021/day10/input0 b/src/2021/day10/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day10/input0
diff --git a/src/2021/day11/README.md b/src/2021/day11/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day11/README.md
diff --git a/src/2021/day11/aoc.cpp b/src/2021/day11/aoc.cpp
new file mode 100644
index 0000000..fcc46da
--- /dev/null
+++ b/src/2021/day11/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day11(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day11/aoc.h b/src/2021/day11/aoc.h
new file mode 100644
index 0000000..7e29df9
--- /dev/null
+++ b/src/2021/day11/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day11(line_view);
+}
diff --git a/src/2021/day11/input b/src/2021/day11/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day11/input
diff --git a/src/2021/day11/input0 b/src/2021/day11/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day11/input0
diff --git a/src/2021/day12/README.md b/src/2021/day12/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day12/README.md
diff --git a/src/2021/day12/aoc.cpp b/src/2021/day12/aoc.cpp
new file mode 100644
index 0000000..60f1ee8
--- /dev/null
+++ b/src/2021/day12/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day12(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day12/aoc.h b/src/2021/day12/aoc.h
new file mode 100644
index 0000000..f4fe4e4
--- /dev/null
+++ b/src/2021/day12/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day12(line_view);
+}
diff --git a/src/2021/day12/input b/src/2021/day12/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day12/input
diff --git a/src/2021/day12/input0 b/src/2021/day12/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day12/input0
diff --git a/src/2021/day13/README.md b/src/2021/day13/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day13/README.md
diff --git a/src/2021/day13/aoc.cpp b/src/2021/day13/aoc.cpp
new file mode 100644
index 0000000..c193926
--- /dev/null
+++ b/src/2021/day13/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day13/aoc.h b/src/2021/day13/aoc.h
new file mode 100644
index 0000000..9a3e060
--- /dev/null
+++ b/src/2021/day13/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day13(line_view);
+}
diff --git a/src/2021/day13/input b/src/2021/day13/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day13/input
diff --git a/src/2021/day13/input0 b/src/2021/day13/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day13/input0
diff --git a/src/2021/day14/README.md b/src/2021/day14/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day14/README.md
diff --git a/src/2021/day14/aoc.cpp b/src/2021/day14/aoc.cpp
new file mode 100644
index 0000000..329f049
--- /dev/null
+++ b/src/2021/day14/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day14(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day14/aoc.h b/src/2021/day14/aoc.h
new file mode 100644
index 0000000..19cdbe9
--- /dev/null
+++ b/src/2021/day14/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day14(line_view);
+}
diff --git a/src/2021/day14/input b/src/2021/day14/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day14/input
diff --git a/src/2021/day14/input0 b/src/2021/day14/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day14/input0
diff --git a/src/2021/day15/README.md b/src/2021/day15/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day15/README.md
diff --git a/src/2021/day15/aoc.cpp b/src/2021/day15/aoc.cpp
new file mode 100644
index 0000000..b7f8230
--- /dev/null
+++ b/src/2021/day15/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day15(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day15/aoc.h b/src/2021/day15/aoc.h
new file mode 100644
index 0000000..8c0465d
--- /dev/null
+++ b/src/2021/day15/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day15(line_view);
+}
diff --git a/src/2021/day15/input b/src/2021/day15/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day15/input
diff --git a/src/2021/day15/input0 b/src/2021/day15/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day15/input0
diff --git a/src/2021/day16/README.md b/src/2021/day16/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day16/README.md
diff --git a/src/2021/day16/aoc.cpp b/src/2021/day16/aoc.cpp
new file mode 100644
index 0000000..4130713
--- /dev/null
+++ b/src/2021/day16/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day16(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day16/aoc.h b/src/2021/day16/aoc.h
new file mode 100644
index 0000000..5b278b4
--- /dev/null
+++ b/src/2021/day16/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day16(line_view);
+}
diff --git a/src/2021/day16/input b/src/2021/day16/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day16/input
diff --git a/src/2021/day16/input0 b/src/2021/day16/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day16/input0
diff --git a/src/2021/day17/README.md b/src/2021/day17/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day17/README.md
diff --git a/src/2021/day17/aoc.cpp b/src/2021/day17/aoc.cpp
new file mode 100644
index 0000000..11fea9b
--- /dev/null
+++ b/src/2021/day17/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day17(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day17/aoc.h b/src/2021/day17/aoc.h
new file mode 100644
index 0000000..3930b3e
--- /dev/null
+++ b/src/2021/day17/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day17(line_view);
+}
diff --git a/src/2021/day17/input b/src/2021/day17/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day17/input
diff --git a/src/2021/day17/input0 b/src/2021/day17/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day17/input0
diff --git a/src/2021/day18/README.md b/src/2021/day18/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day18/README.md
diff --git a/src/2021/day18/aoc.cpp b/src/2021/day18/aoc.cpp
new file mode 100644
index 0000000..3769558
--- /dev/null
+++ b/src/2021/day18/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day18(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day18/aoc.h b/src/2021/day18/aoc.h
new file mode 100644
index 0000000..088b17b
--- /dev/null
+++ b/src/2021/day18/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day18(line_view);
+}
diff --git a/src/2021/day18/input b/src/2021/day18/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day18/input
diff --git a/src/2021/day18/input0 b/src/2021/day18/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day18/input0
diff --git a/src/2021/day19/README.md b/src/2021/day19/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day19/README.md
diff --git a/src/2021/day19/aoc.cpp b/src/2021/day19/aoc.cpp
new file mode 100644
index 0000000..20e61b2
--- /dev/null
+++ b/src/2021/day19/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day19(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day19/aoc.h b/src/2021/day19/aoc.h
new file mode 100644
index 0000000..51cc43a
--- /dev/null
+++ b/src/2021/day19/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day19(line_view);
+}
diff --git a/src/2021/day19/input b/src/2021/day19/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day19/input
diff --git a/src/2021/day19/input0 b/src/2021/day19/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day19/input0
diff --git a/src/2021/day20/README.md b/src/2021/day20/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day20/README.md
diff --git a/src/2021/day20/aoc.cpp b/src/2021/day20/aoc.cpp
new file mode 100644
index 0000000..9d18b00
--- /dev/null
+++ b/src/2021/day20/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day20(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day20/aoc.h b/src/2021/day20/aoc.h
new file mode 100644
index 0000000..c327e49
--- /dev/null
+++ b/src/2021/day20/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day20(line_view);
+}
diff --git a/src/2021/day20/input b/src/2021/day20/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day20/input
diff --git a/src/2021/day20/input0 b/src/2021/day20/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day20/input0
diff --git a/src/2021/day21/README.md b/src/2021/day21/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day21/README.md
diff --git a/src/2021/day21/aoc.cpp b/src/2021/day21/aoc.cpp
new file mode 100644
index 0000000..5c2c2ef
--- /dev/null
+++ b/src/2021/day21/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day21/aoc.h b/src/2021/day21/aoc.h
new file mode 100644
index 0000000..82c47fe
--- /dev/null
+++ b/src/2021/day21/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day21(line_view);
+}
diff --git a/src/2021/day21/input b/src/2021/day21/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day21/input
diff --git a/src/2021/day21/input0 b/src/2021/day21/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day21/input0
diff --git a/src/2021/day22/README.md b/src/2021/day22/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day22/README.md
diff --git a/src/2021/day22/aoc.cpp b/src/2021/day22/aoc.cpp
new file mode 100644
index 0000000..9556bec
--- /dev/null
+++ b/src/2021/day22/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day22(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day22/aoc.h b/src/2021/day22/aoc.h
new file mode 100644
index 0000000..ea4f2f3
--- /dev/null
+++ b/src/2021/day22/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day22(line_view);
+}
diff --git a/src/2021/day22/input b/src/2021/day22/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day22/input
diff --git a/src/2021/day22/input0 b/src/2021/day22/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day22/input0
diff --git a/src/2021/day23/README.md b/src/2021/day23/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day23/README.md
diff --git a/src/2021/day23/aoc.cpp b/src/2021/day23/aoc.cpp
new file mode 100644
index 0000000..40768e9
--- /dev/null
+++ b/src/2021/day23/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day23(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day23/aoc.h b/src/2021/day23/aoc.h
new file mode 100644
index 0000000..b3b6fc3
--- /dev/null
+++ b/src/2021/day23/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day23(line_view);
+}
diff --git a/src/2021/day23/input b/src/2021/day23/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day23/input
diff --git a/src/2021/day23/input0 b/src/2021/day23/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day23/input0
diff --git a/src/2021/day24/README.md b/src/2021/day24/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day24/README.md
diff --git a/src/2021/day24/aoc.cpp b/src/2021/day24/aoc.cpp
new file mode 100644
index 0000000..709fbea
--- /dev/null
+++ b/src/2021/day24/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day24(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day24/aoc.h b/src/2021/day24/aoc.h
new file mode 100644
index 0000000..6b492be
--- /dev/null
+++ b/src/2021/day24/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day24(line_view);
+}
diff --git a/src/2021/day24/input b/src/2021/day24/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day24/input
diff --git a/src/2021/day24/input0 b/src/2021/day24/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day24/input0
diff --git a/src/2021/day25/README.md b/src/2021/day25/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day25/README.md
diff --git a/src/2021/day25/aoc.cpp b/src/2021/day25/aoc.cpp
new file mode 100644
index 0000000..7a1dff9
--- /dev/null
+++ b/src/2021/day25/aoc.cpp
@@ -0,0 +1,6 @@
+#include "aoc.h"
+
+namespace aoc2021 {
+
+std::pair<int64_t, int64_t> day25(line_view) { return {0, 0}; }
+} // namespace aoc2021
diff --git a/src/2021/day25/aoc.h b/src/2021/day25/aoc.h
new file mode 100644
index 0000000..68f2480
--- /dev/null
+++ b/src/2021/day25/aoc.h
@@ -0,0 +1,7 @@
+#pragma once
+#include "common.h"
+#include <vector>
+
+namespace aoc2021 {
+std::pair<int64_t, int64_t> day25(line_view);
+}
diff --git a/src/2021/day25/input b/src/2021/day25/input
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day25/input
diff --git a/src/2021/day25/input0 b/src/2021/day25/input0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/2021/day25/input0
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d98646f..30138f3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -34,6 +34,22 @@ set(SOLUTION_FILES
"2016/day7/aoc.cpp"
"2016/day8/aoc.cpp"
"2016/day9/aoc.cpp"
+ "2016/day10/aoc.cpp"
+ "2016/day11/aoc.cpp"
+ "2016/day12/aoc.cpp"
+ "2016/day13/aoc.cpp"
+ "2016/day14/aoc.cpp"
+ "2016/day15/aoc.cpp"
+ "2016/day16/aoc.cpp"
+ "2016/day17/aoc.cpp"
+ "2016/day18/aoc.cpp"
+ "2016/day19/aoc.cpp"
+ "2016/day20/aoc.cpp"
+ "2016/day21/aoc.cpp"
+ "2016/day22/aoc.cpp"
+ "2016/day23/aoc.cpp"
+ "2016/day24/aoc.cpp"
+ "2016/day25/aoc.cpp"
"2017/day1/aoc.cpp"
"2017/day2/aoc.cpp"
@@ -44,7 +60,23 @@ set(SOLUTION_FILES
"2017/day7/aoc.cpp"
"2017/day8/aoc.cpp"
"2017/day9/aoc.cpp"
-
+ "2017/day10/aoc.cpp"
+ "2017/day11/aoc.cpp"
+ "2017/day12/aoc.cpp"
+ "2017/day13/aoc.cpp"
+ "2017/day14/aoc.cpp"
+ "2017/day15/aoc.cpp"
+ "2017/day16/aoc.cpp"
+ "2017/day17/aoc.cpp"
+ "2017/day18/aoc.cpp"
+ "2017/day19/aoc.cpp"
+ "2017/day20/aoc.cpp"
+ "2017/day21/aoc.cpp"
+ "2017/day22/aoc.cpp"
+ "2017/day23/aoc.cpp"
+ "2017/day24/aoc.cpp"
+ "2017/day25/aoc.cpp"
+
"2018/day1/aoc.cpp"
"2018/day2/aoc.cpp"
"2018/day3/aoc.cpp"
@@ -54,7 +86,23 @@ set(SOLUTION_FILES
"2018/day7/aoc.cpp"
"2018/day8/aoc.cpp"
"2018/day9/aoc.cpp"
-
+ "2018/day10/aoc.cpp"
+ "2018/day11/aoc.cpp"
+ "2018/day12/aoc.cpp"
+ "2018/day13/aoc.cpp"
+ "2018/day14/aoc.cpp"
+ "2018/day15/aoc.cpp"
+ "2018/day16/aoc.cpp"
+ "2018/day17/aoc.cpp"
+ "2018/day18/aoc.cpp"
+ "2018/day19/aoc.cpp"
+ "2018/day20/aoc.cpp"
+ "2018/day21/aoc.cpp"
+ "2018/day22/aoc.cpp"
+ "2018/day23/aoc.cpp"
+ "2018/day24/aoc.cpp"
+ "2018/day25/aoc.cpp"
+
"2019/day1/aoc.cpp"
"2019/day2/aoc.cpp"
"2019/day3/aoc.cpp"
@@ -65,7 +113,22 @@ set(SOLUTION_FILES
"2019/day8/aoc.cpp"
"2019/day9/aoc.cpp"
"2019/day10/aoc.cpp"
-
+ "2019/day11/aoc.cpp"
+ "2019/day12/aoc.cpp"
+ "2019/day13/aoc.cpp"
+ "2019/day14/aoc.cpp"
+ "2019/day15/aoc.cpp"
+ "2019/day16/aoc.cpp"
+ "2019/day17/aoc.cpp"
+ "2019/day18/aoc.cpp"
+ "2019/day19/aoc.cpp"
+ "2019/day20/aoc.cpp"
+ "2019/day21/aoc.cpp"
+ "2019/day22/aoc.cpp"
+ "2019/day23/aoc.cpp"
+ "2019/day24/aoc.cpp"
+ "2019/day25/aoc.cpp"
+
"2020/day1/aoc.cpp"
"2020/day2/aoc.cpp"
"2020/day3/aoc.cpp"
@@ -75,7 +138,23 @@ set(SOLUTION_FILES
"2020/day7/aoc.cpp"
"2020/day8/aoc.cpp"
"2020/day9/aoc.cpp"
-
+ "2020/day10/aoc.cpp"
+ "2020/day11/aoc.cpp"
+ "2020/day12/aoc.cpp"
+ "2020/day13/aoc.cpp"
+ "2020/day14/aoc.cpp"
+ "2020/day15/aoc.cpp"
+ "2020/day16/aoc.cpp"
+ "2020/day17/aoc.cpp"
+ "2020/day18/aoc.cpp"
+ "2020/day19/aoc.cpp"
+ "2020/day20/aoc.cpp"
+ "2020/day21/aoc.cpp"
+ "2020/day22/aoc.cpp"
+ "2020/day23/aoc.cpp"
+ "2020/day24/aoc.cpp"
+ "2020/day25/aoc.cpp"
+
"2021/day1/aoc.cpp"
"2021/day2/aoc.cpp"
"2021/day3/aoc.cpp"
@@ -85,6 +164,22 @@ set(SOLUTION_FILES
"2021/day7/aoc.cpp"
"2021/day8/aoc.cpp"
"2021/day9/aoc.cpp"
+ "2021/day10/aoc.cpp"
+ "2021/day11/aoc.cpp"
+ "2021/day12/aoc.cpp"
+ "2021/day13/aoc.cpp"
+ "2021/day14/aoc.cpp"
+ "2021/day15/aoc.cpp"
+ "2021/day16/aoc.cpp"
+ "2021/day17/aoc.cpp"
+ "2021/day18/aoc.cpp"
+ "2021/day19/aoc.cpp"
+ "2021/day20/aoc.cpp"
+ "2021/day21/aoc.cpp"
+ "2021/day22/aoc.cpp"
+ "2021/day23/aoc.cpp"
+ "2021/day24/aoc.cpp"
+ "2021/day25/aoc.cpp"
"2022/day1/aoc.cpp"
"2022/day2/aoc.cpp"