From e9bf399af40524a5e0614f52b901745165d9b229 Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Thu, 28 Nov 2019 08:00:46 +0100 Subject: [PATCH] Prepare all days skeletons. --- 2019/CMakeLists.txt | 3 ++- 2019/src/day01.cpp | 31 +++------------------- 2019/src/day02.cpp | 10 ++++++++ 2019/src/day03.cpp | 10 ++++++++ 2019/src/day04.cpp | 10 ++++++++ 2019/src/day05.cpp | 10 ++++++++ 2019/src/day06.cpp | 10 ++++++++ 2019/src/day07.cpp | 10 ++++++++ 2019/src/day08.cpp | 10 ++++++++ 2019/src/day09.cpp | 10 ++++++++ 2019/src/day10.cpp | 10 ++++++++ 2019/src/day11.cpp | 10 ++++++++ 2019/src/day12.cpp | 10 ++++++++ 2019/src/day13.cpp | 10 ++++++++ 2019/src/day14.cpp | 10 ++++++++ 2019/src/day15.cpp | 10 ++++++++ 2019/src/day16.cpp | 10 ++++++++ 2019/src/day17.cpp | 10 ++++++++ 2019/src/day18.cpp | 10 ++++++++ 2019/src/day19.cpp | 10 ++++++++ 2019/src/day20.cpp | 10 ++++++++ 2019/src/day21.cpp | 10 ++++++++ 2019/src/day22.cpp | 10 ++++++++ 2019/src/day23.cpp | 10 ++++++++ 2019/src/day24.cpp | 10 ++++++++ 2019/src/day25.cpp | 10 ++++++++ 2019/src/days.hpp | 48 +++++++++++++++++++++++++++++++++++ 2019/src/implementations.cpp | 30 +++++++++++++++++++--- 2019/tests/samples/.gitkeep | 1 + 2019/tests/samples/01-1-1.in | 4 --- 2019/tests/samples/01-1-1.out | 1 - 2019/tests/samples/01-1-2.in | 3 --- 2019/tests/samples/01-1-2.out | 1 - 2019/tests/samples/01-1-3.in | 3 --- 2019/tests/samples/01-1-3.out | 1 - 2019/tests/samples/01-1-4.in | 3 --- 2019/tests/samples/01-1-4.out | 1 - 37 files changed, 321 insertions(+), 49 deletions(-) create mode 100644 2019/src/day02.cpp create mode 100644 2019/src/day03.cpp create mode 100644 2019/src/day04.cpp create mode 100644 2019/src/day05.cpp create mode 100644 2019/src/day06.cpp create mode 100644 2019/src/day07.cpp create mode 100644 2019/src/day08.cpp create mode 100644 2019/src/day09.cpp create mode 100644 2019/src/day10.cpp create mode 100644 2019/src/day11.cpp create mode 100644 2019/src/day12.cpp create mode 100644 2019/src/day13.cpp create mode 100644 2019/src/day14.cpp create mode 100644 2019/src/day15.cpp create mode 100644 2019/src/day16.cpp create mode 100644 2019/src/day17.cpp create mode 100644 2019/src/day18.cpp create mode 100644 2019/src/day19.cpp create mode 100644 2019/src/day20.cpp create mode 100644 2019/src/day21.cpp create mode 100644 2019/src/day22.cpp create mode 100644 2019/src/day23.cpp create mode 100644 2019/src/day24.cpp create mode 100644 2019/src/day25.cpp create mode 100644 2019/tests/samples/.gitkeep delete mode 100644 2019/tests/samples/01-1-1.in delete mode 100644 2019/tests/samples/01-1-1.out delete mode 100644 2019/tests/samples/01-1-2.in delete mode 100644 2019/tests/samples/01-1-2.out delete mode 100644 2019/tests/samples/01-1-3.in delete mode 100644 2019/tests/samples/01-1-3.out delete mode 100644 2019/tests/samples/01-1-4.in delete mode 100644 2019/tests/samples/01-1-4.out diff --git a/2019/CMakeLists.txt b/2019/CMakeLists.txt index a679e78..1ee4f27 100644 --- a/2019/CMakeLists.txt +++ b/2019/CMakeLists.txt @@ -4,7 +4,8 @@ project(aoc2019) find_package(GTest REQUIRED) -add_library(AoCSolutions src/implementations.hpp src/implementations.cpp src/day01.cpp src/days.hpp) +file(GLOB DAYS_FILES src/day*.cpp) +add_library(AoCSolutions src/implementations.cpp "${DAYS_FILES}") target_compile_features(AoCSolutions PUBLIC cxx_std_17) add_executable(runner src/runner.cpp) diff --git a/2019/src/day01.cpp b/2019/src/day01.cpp index a51511b..c4ff5e4 100644 --- a/2019/src/day01.cpp +++ b/2019/src/day01.cpp @@ -1,35 +1,10 @@ -#include -#include -#include -#include +#include #include "days.hpp" -// Currently an implementation of 2018 day 1 void aoc2019::day01_part1(std::istream &input, std::ostream &output) { - int sum = std::accumulate(std::istream_iterator(input), - std::istream_iterator(), - 0); - - output << sum << std::endl; + output << "Not implemented\n"; } void aoc2019::day01_part2(std::istream &input, std::ostream &output) { - std::vector drifts; - std::copy(std::istream_iterator(input), - std::istream_iterator(), - std::back_inserter(drifts)); - - int cur = 0; - std::unordered_set seen{cur}; - while (true) { - for (auto drift : drifts) { - cur += drift; - if (seen.count(cur) == 1) { - output << cur << std::endl; - return; - } else { - seen.insert(cur); - } - } - } + output << "Not implemented\n"; } diff --git a/2019/src/day02.cpp b/2019/src/day02.cpp new file mode 100644 index 0000000..5bb6abf --- /dev/null +++ b/2019/src/day02.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day02_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day02_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day03.cpp b/2019/src/day03.cpp new file mode 100644 index 0000000..dfc74de --- /dev/null +++ b/2019/src/day03.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day03_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day03_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day04.cpp b/2019/src/day04.cpp new file mode 100644 index 0000000..c9f113f --- /dev/null +++ b/2019/src/day04.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day04_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day04_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day05.cpp b/2019/src/day05.cpp new file mode 100644 index 0000000..af62105 --- /dev/null +++ b/2019/src/day05.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day05_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day05_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day06.cpp b/2019/src/day06.cpp new file mode 100644 index 0000000..52421fd --- /dev/null +++ b/2019/src/day06.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day06_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day06_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day07.cpp b/2019/src/day07.cpp new file mode 100644 index 0000000..603b222 --- /dev/null +++ b/2019/src/day07.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day07_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day07_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day08.cpp b/2019/src/day08.cpp new file mode 100644 index 0000000..03855f3 --- /dev/null +++ b/2019/src/day08.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day08_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day08_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day09.cpp b/2019/src/day09.cpp new file mode 100644 index 0000000..28f8285 --- /dev/null +++ b/2019/src/day09.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day09_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day09_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day10.cpp b/2019/src/day10.cpp new file mode 100644 index 0000000..391e112 --- /dev/null +++ b/2019/src/day10.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day10_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day10_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day11.cpp b/2019/src/day11.cpp new file mode 100644 index 0000000..508ed43 --- /dev/null +++ b/2019/src/day11.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day11_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day11_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day12.cpp b/2019/src/day12.cpp new file mode 100644 index 0000000..16cb2a8 --- /dev/null +++ b/2019/src/day12.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day12_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day12_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day13.cpp b/2019/src/day13.cpp new file mode 100644 index 0000000..39dd64c --- /dev/null +++ b/2019/src/day13.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day13_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day13_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day14.cpp b/2019/src/day14.cpp new file mode 100644 index 0000000..b0441a4 --- /dev/null +++ b/2019/src/day14.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day14_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day14_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day15.cpp b/2019/src/day15.cpp new file mode 100644 index 0000000..6fa383f --- /dev/null +++ b/2019/src/day15.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day15_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day15_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day16.cpp b/2019/src/day16.cpp new file mode 100644 index 0000000..61765e5 --- /dev/null +++ b/2019/src/day16.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day16_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day16_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day17.cpp b/2019/src/day17.cpp new file mode 100644 index 0000000..a979207 --- /dev/null +++ b/2019/src/day17.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day17_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day17_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day18.cpp b/2019/src/day18.cpp new file mode 100644 index 0000000..4783ee1 --- /dev/null +++ b/2019/src/day18.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day18_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day18_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day19.cpp b/2019/src/day19.cpp new file mode 100644 index 0000000..aa2248c --- /dev/null +++ b/2019/src/day19.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day19_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day19_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day20.cpp b/2019/src/day20.cpp new file mode 100644 index 0000000..bb8a3a7 --- /dev/null +++ b/2019/src/day20.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day20_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day20_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day21.cpp b/2019/src/day21.cpp new file mode 100644 index 0000000..89decc1 --- /dev/null +++ b/2019/src/day21.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day21_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day21_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day22.cpp b/2019/src/day22.cpp new file mode 100644 index 0000000..70e3852 --- /dev/null +++ b/2019/src/day22.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day22_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day22_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day23.cpp b/2019/src/day23.cpp new file mode 100644 index 0000000..383e9f5 --- /dev/null +++ b/2019/src/day23.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day23_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day23_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day24.cpp b/2019/src/day24.cpp new file mode 100644 index 0000000..632ed30 --- /dev/null +++ b/2019/src/day24.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day24_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day24_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/day25.cpp b/2019/src/day25.cpp new file mode 100644 index 0000000..0eb6ade --- /dev/null +++ b/2019/src/day25.cpp @@ -0,0 +1,10 @@ +#include +#include "days.hpp" + +void aoc2019::day25_part1(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} + +void aoc2019::day25_part2(std::istream &input, std::ostream &output) { + output << "Not implemented\n"; +} diff --git a/2019/src/days.hpp b/2019/src/days.hpp index f511242..f34ed64 100644 --- a/2019/src/days.hpp +++ b/2019/src/days.hpp @@ -6,4 +6,52 @@ namespace aoc2019 { // Declarations of all implemented days. void day01_part1(std::istream &input, std::ostream &output); void day01_part2(std::istream &input, std::ostream &output); + void day02_part1(std::istream &input, std::ostream &output); + void day02_part2(std::istream &input, std::ostream &output); + void day03_part1(std::istream &input, std::ostream &output); + void day03_part2(std::istream &input, std::ostream &output); + void day04_part1(std::istream &input, std::ostream &output); + void day04_part2(std::istream &input, std::ostream &output); + void day05_part1(std::istream &input, std::ostream &output); + void day05_part2(std::istream &input, std::ostream &output); + void day06_part1(std::istream &input, std::ostream &output); + void day06_part2(std::istream &input, std::ostream &output); + void day07_part1(std::istream &input, std::ostream &output); + void day07_part2(std::istream &input, std::ostream &output); + void day08_part1(std::istream &input, std::ostream &output); + void day08_part2(std::istream &input, std::ostream &output); + void day09_part1(std::istream &input, std::ostream &output); + void day09_part2(std::istream &input, std::ostream &output); + void day10_part1(std::istream &input, std::ostream &output); + void day10_part2(std::istream &input, std::ostream &output); + void day11_part1(std::istream &input, std::ostream &output); + void day11_part2(std::istream &input, std::ostream &output); + void day12_part1(std::istream &input, std::ostream &output); + void day12_part2(std::istream &input, std::ostream &output); + void day13_part1(std::istream &input, std::ostream &output); + void day13_part2(std::istream &input, std::ostream &output); + void day14_part1(std::istream &input, std::ostream &output); + void day14_part2(std::istream &input, std::ostream &output); + void day15_part1(std::istream &input, std::ostream &output); + void day15_part2(std::istream &input, std::ostream &output); + void day16_part1(std::istream &input, std::ostream &output); + void day16_part2(std::istream &input, std::ostream &output); + void day17_part1(std::istream &input, std::ostream &output); + void day17_part2(std::istream &input, std::ostream &output); + void day18_part1(std::istream &input, std::ostream &output); + void day18_part2(std::istream &input, std::ostream &output); + void day19_part1(std::istream &input, std::ostream &output); + void day19_part2(std::istream &input, std::ostream &output); + void day20_part1(std::istream &input, std::ostream &output); + void day20_part2(std::istream &input, std::ostream &output); + void day21_part1(std::istream &input, std::ostream &output); + void day21_part2(std::istream &input, std::ostream &output); + void day22_part1(std::istream &input, std::ostream &output); + void day22_part2(std::istream &input, std::ostream &output); + void day23_part1(std::istream &input, std::ostream &output); + void day23_part2(std::istream &input, std::ostream &output); + void day24_part1(std::istream &input, std::ostream &output); + void day24_part2(std::istream &input, std::ostream &output); + void day25_part1(std::istream &input, std::ostream &output); + void day25_part2(std::istream &input, std::ostream &output); } diff --git a/2019/src/implementations.cpp b/2019/src/implementations.cpp index 570aca2..9111331 100644 --- a/2019/src/implementations.cpp +++ b/2019/src/implementations.cpp @@ -2,9 +2,33 @@ #include "days.hpp" #include "implementations.hpp" -constexpr const std::array, 25> SOLUTIONS = { - {aoc2019::day01_part1, aoc2019::day01_part2} -}; +constexpr const std::array, 25> SOLUTIONS = {{ + {aoc2019::day01_part1, aoc2019::day01_part2}, + {aoc2019::day02_part1, aoc2019::day02_part2}, + {aoc2019::day03_part1, aoc2019::day03_part2}, + {aoc2019::day04_part1, aoc2019::day04_part2}, + {aoc2019::day05_part1, aoc2019::day05_part2}, + {aoc2019::day06_part1, aoc2019::day06_part2}, + {aoc2019::day07_part1, aoc2019::day07_part2}, + {aoc2019::day08_part1, aoc2019::day08_part2}, + {aoc2019::day09_part1, aoc2019::day09_part2}, + {aoc2019::day10_part1, aoc2019::day10_part2}, + {aoc2019::day11_part1, aoc2019::day11_part2}, + {aoc2019::day12_part1, aoc2019::day12_part2}, + {aoc2019::day13_part1, aoc2019::day13_part2}, + {aoc2019::day14_part1, aoc2019::day14_part2}, + {aoc2019::day15_part1, aoc2019::day15_part2}, + {aoc2019::day16_part1, aoc2019::day16_part2}, + {aoc2019::day17_part1, aoc2019::day17_part2}, + {aoc2019::day18_part1, aoc2019::day18_part2}, + {aoc2019::day19_part1, aoc2019::day19_part2}, + {aoc2019::day20_part1, aoc2019::day20_part2}, + {aoc2019::day21_part1, aoc2019::day21_part2}, + {aoc2019::day22_part1, aoc2019::day22_part2}, + {aoc2019::day23_part1, aoc2019::day23_part2}, + {aoc2019::day24_part1, aoc2019::day24_part2}, + {aoc2019::day25_part1, aoc2019::day25_part2}, +}}; aoc2019::solution_t aoc2019::get_implementation(int day, bool part2) { return SOLUTIONS.at(day - 1).at((int) part2); diff --git a/2019/tests/samples/.gitkeep b/2019/tests/samples/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/2019/tests/samples/.gitkeep @@ -0,0 +1 @@ + diff --git a/2019/tests/samples/01-1-1.in b/2019/tests/samples/01-1-1.in deleted file mode 100644 index 9205ed4..0000000 --- a/2019/tests/samples/01-1-1.in +++ /dev/null @@ -1,4 +0,0 @@ -+1 --2 -+3 -+1 diff --git a/2019/tests/samples/01-1-1.out b/2019/tests/samples/01-1-1.out deleted file mode 100644 index 00750ed..0000000 --- a/2019/tests/samples/01-1-1.out +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/2019/tests/samples/01-1-2.in b/2019/tests/samples/01-1-2.in deleted file mode 100644 index 5d703f6..0000000 --- a/2019/tests/samples/01-1-2.in +++ /dev/null @@ -1,3 +0,0 @@ -+1 -+1 -+1 diff --git a/2019/tests/samples/01-1-2.out b/2019/tests/samples/01-1-2.out deleted file mode 100644 index 00750ed..0000000 --- a/2019/tests/samples/01-1-2.out +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/2019/tests/samples/01-1-3.in b/2019/tests/samples/01-1-3.in deleted file mode 100644 index 399f99d..0000000 --- a/2019/tests/samples/01-1-3.in +++ /dev/null @@ -1,3 +0,0 @@ -+1 -+1 --2 diff --git a/2019/tests/samples/01-1-3.out b/2019/tests/samples/01-1-3.out deleted file mode 100644 index 573541a..0000000 --- a/2019/tests/samples/01-1-3.out +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/2019/tests/samples/01-1-4.in b/2019/tests/samples/01-1-4.in deleted file mode 100644 index 5be202d..0000000 --- a/2019/tests/samples/01-1-4.in +++ /dev/null @@ -1,3 +0,0 @@ --1 --2 --3 diff --git a/2019/tests/samples/01-1-4.out b/2019/tests/samples/01-1-4.out deleted file mode 100644 index 3cfb5ef..0000000 --- a/2019/tests/samples/01-1-4.out +++ /dev/null @@ -1 +0,0 @@ --6