Use a common main
This commit is contained in:
12
2020/01.cpp
12
2020/01.cpp
@@ -19,12 +19,12 @@ auto Parse(std::istream & in) -> std::vector<std::int64_t>
|
||||
while (in >> x) {
|
||||
result.push_back(x);
|
||||
}
|
||||
std::sort(result.begin(), result.end());
|
||||
return result;
|
||||
}
|
||||
|
||||
auto Part1(std::vector<std::int64_t> entries) {
|
||||
auto Part1(std::vector<std::int64_t> const& entries) {
|
||||
std::bitset<2020> numbers;
|
||||
std::sort(entries.begin(), entries.end());
|
||||
for (auto const i : entries) {
|
||||
if (i >= 2020) {
|
||||
break;
|
||||
@@ -39,9 +39,8 @@ auto Part1(std::vector<std::int64_t> entries) {
|
||||
throw std::runtime_error{"no part 1 solution"};
|
||||
}
|
||||
|
||||
auto Part2(std::vector<std::int64_t> entries) {
|
||||
auto Part2(std::vector<std::int64_t> const& entries) {
|
||||
std::bitset<2020> numbers;
|
||||
std::sort(entries.begin(), entries.end());
|
||||
for (auto const i : entries) {
|
||||
if (i >= 2020) { break; }
|
||||
if (i < 2020) { numbers.set(i); }
|
||||
@@ -79,8 +78,9 @@ TEST_CASE("part 2") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto entries = Parse(aocpp::Startup(argc, argv));
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
auto const entries {Parse(in)};
|
||||
std::cout << "Part 1: " << Part1(entries) << std::endl;
|
||||
std::cout << "Part 2: " << Part2(entries) << std::endl;
|
||||
}
|
||||
|
@@ -56,10 +56,8 @@ TEST_CASE("part 2") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto const in_ptr = aocpp::Startup(argc, argv);
|
||||
auto & in = *in_ptr;
|
||||
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
std::uint64_t part1{}, part2{};
|
||||
|
||||
std::string line;
|
||||
|
@@ -76,8 +76,9 @@ TEST_CASE("part 2") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto grid = Grid::Parse(*Startup(argc, argv));
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
auto const grid {Grid::Parse(in)};
|
||||
std::cout << "Part 1: " << Part1(grid) << std::endl;
|
||||
std::cout << "Part 2: " << Part2(grid) << std::endl;
|
||||
}
|
||||
|
@@ -75,8 +75,9 @@ TEST_CASE("part 2") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto adapters = Parse(*aocpp::Startup(argc, argv));
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
auto const adapters {Parse(in)};
|
||||
std::cout << "Part 1: " << Part1(adapters) << std::endl;
|
||||
std::cout << "Part 2: " << Part2(adapters) << std::endl;
|
||||
}
|
||||
|
@@ -180,12 +180,13 @@ TEST_SUITE("documented examples") {
|
||||
};
|
||||
|
||||
auto input = Parse(in);
|
||||
REQUIRE(Part1(input) == 71);
|
||||
CHECK(Part1(input) == 71);
|
||||
}
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto input = Parse(*aocpp::Startup(argc, argv));
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
auto input {Parse(in)};
|
||||
std::cout << "Part 1: " << Part1(input) << std::endl;
|
||||
std::cout << "Part 2: " << Part2(input) << std::endl;
|
||||
}
|
||||
|
@@ -140,10 +140,8 @@ TEST_CASE("errors") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto const in_ptr = aocpp::Startup(argc, argv);
|
||||
auto & in = *in_ptr;
|
||||
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
std::int64_t part1 = 0;
|
||||
std::int64_t part2 = 0;
|
||||
|
||||
|
@@ -178,8 +178,9 @@ TEST_CASE("part 2") {
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char** argv) -> int {
|
||||
auto const input = Parse(*Startup(argc, argv));
|
||||
auto Main(std::istream & in) -> void
|
||||
{
|
||||
auto const input {Parse(in)};
|
||||
std::cout << "Part 1: " << Part1(input) << std::endl;
|
||||
std::cout << "Part 2: " << Part2(input) << std::endl;
|
||||
}
|
||||
|
@@ -1,3 +1,6 @@
|
||||
add_executable(2020_01 01.cpp)
|
||||
target_link_libraries(2020_01 aocpp)
|
||||
|
||||
add_executable(2020_02 02.cpp)
|
||||
target_link_libraries(2020_02 aocpp)
|
||||
|
||||
@@ -14,4 +17,4 @@ add_executable(2020_18 18.cpp)
|
||||
target_link_libraries(2020_18 aocpp)
|
||||
|
||||
add_executable(2020_21 21.cpp)
|
||||
target_link_libraries(2020_21 aocpp dlx)
|
||||
target_link_libraries(2020_21 aocpp dlx)
|
||||
|
Reference in New Issue
Block a user