mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Prepare all days skeletons.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -1,35 +1,10 @@
|
||||
#include <numeric>
|
||||
#include <iterator>
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
#include <iostream>
|
||||
#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<int>(input),
|
||||
std::istream_iterator<int>(),
|
||||
0);
|
||||
|
||||
output << sum << std::endl;
|
||||
output << "Not implemented\n";
|
||||
}
|
||||
|
||||
void aoc2019::day01_part2(std::istream &input, std::ostream &output) {
|
||||
std::vector<int> drifts;
|
||||
std::copy(std::istream_iterator<int>(input),
|
||||
std::istream_iterator<int>(),
|
||||
std::back_inserter(drifts));
|
||||
|
||||
int cur = 0;
|
||||
std::unordered_set<int> 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";
|
||||
}
|
||||
|
||||
10
2019/src/day02.cpp
Normal file
10
2019/src/day02.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day03.cpp
Normal file
10
2019/src/day03.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day04.cpp
Normal file
10
2019/src/day04.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day05.cpp
Normal file
10
2019/src/day05.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day06.cpp
Normal file
10
2019/src/day06.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day07.cpp
Normal file
10
2019/src/day07.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day08.cpp
Normal file
10
2019/src/day08.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day09.cpp
Normal file
10
2019/src/day09.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day10.cpp
Normal file
10
2019/src/day10.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day11.cpp
Normal file
10
2019/src/day11.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day12.cpp
Normal file
10
2019/src/day12.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day13.cpp
Normal file
10
2019/src/day13.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day14.cpp
Normal file
10
2019/src/day14.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day15.cpp
Normal file
10
2019/src/day15.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day16.cpp
Normal file
10
2019/src/day16.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day17.cpp
Normal file
10
2019/src/day17.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day18.cpp
Normal file
10
2019/src/day18.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day19.cpp
Normal file
10
2019/src/day19.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day20.cpp
Normal file
10
2019/src/day20.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day21.cpp
Normal file
10
2019/src/day21.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day22.cpp
Normal file
10
2019/src/day22.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day23.cpp
Normal file
10
2019/src/day23.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day24.cpp
Normal file
10
2019/src/day24.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
10
2019/src/day25.cpp
Normal file
10
2019/src/day25.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#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";
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -2,9 +2,33 @@
|
||||
#include "days.hpp"
|
||||
#include "implementations.hpp"
|
||||
|
||||
constexpr const std::array<std::array<aoc2019::solution_t, 2>, 25> SOLUTIONS = {
|
||||
{aoc2019::day01_part1, aoc2019::day01_part2}
|
||||
};
|
||||
constexpr const std::array<std::array<aoc2019::solution_t, 2>, 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);
|
||||
|
||||
1
2019/tests/samples/.gitkeep
Normal file
1
2019/tests/samples/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
+1
|
||||
-2
|
||||
+3
|
||||
+1
|
||||
@@ -1 +0,0 @@
|
||||
3
|
||||
@@ -1,3 +0,0 @@
|
||||
+1
|
||||
+1
|
||||
+1
|
||||
@@ -1 +0,0 @@
|
||||
3
|
||||
@@ -1,3 +0,0 @@
|
||||
+1
|
||||
+1
|
||||
-2
|
||||
@@ -1 +0,0 @@
|
||||
0
|
||||
@@ -1,3 +0,0 @@
|
||||
-1
|
||||
-2
|
||||
-3
|
||||
@@ -1 +0,0 @@
|
||||
-6
|
||||
Reference in New Issue
Block a user