diff --git a/2022/puzzle-01-01.cc b/2022/puzzle-01-01.cc new file mode 100644 index 0000000..a6d4ac0 --- /dev/null +++ b/2022/puzzle-01-01.cc @@ -0,0 +1,29 @@ +// +// Created by Matthew Gretton-Dann on 01/12/2022. +// + +#include +#include +#include + +using Int = std::int64_t; + +auto main() -> int +{ + Int current_value{0}; + Int max_value{0}; + std::string line; + while (std::getline(std::cin, line)) { + if (line.empty()) { + max_value = std::max(max_value, current_value); + current_value = 0; + } + else { + Int incr{std::stoll(line)}; + current_value += incr; + } + } + max_value = std::max(max_value, current_value); + std::cout << "Max value: " << max_value << '\n'; + return EXIT_SUCCESS; +} diff --git a/2022/puzzle-01-02.cc b/2022/puzzle-01-02.cc new file mode 100644 index 0000000..c9c6032 --- /dev/null +++ b/2022/puzzle-01-02.cc @@ -0,0 +1,37 @@ +// +// Created by Matthew Gretton-Dann on 01/12/2022. +// + +#include +#include +#include +#include + +using Int = std::int64_t; + +auto main() -> int +{ + Int current_value{0}; + std::multiset values; + + std::string line; + while (std::getline(std::cin, line)) { + if (line.empty()) { + values.insert(current_value); + current_value = 0; + } + else { + Int incr{std::stoll(line)}; + current_value += incr; + } + } + values.insert(current_value); + + Int top_three{0}; + auto it = values.crbegin(); + top_three += *it++; + top_three += *it++; + top_three += *it++; + std::cout << "Sum of values: " << top_three << '\n'; + return EXIT_SUCCESS; +}