diff --git a/2021/puzzle-01-01.cc b/2021/puzzle-01-01.cc new file mode 100644 index 0000000..0bcb7a9 --- /dev/null +++ b/2021/puzzle-01-01.cc @@ -0,0 +1,23 @@ +// +// Created by Matthew Gretton-Dann on 01/12/2021. +// + +#include +#include +#include +#include + +int main(void) { + unsigned long prev{std::numeric_limits::max()}; + unsigned incrs{0}; + std::string line; + while (std::getline(std::cin, line)) { + auto current{std::stoul(line)}; + if (current > prev) { + ++incrs; + } + prev = current; + } + std::cout << "Number of increments: " << incrs << '\n'; + return EXIT_SUCCESS; +} diff --git a/2021/puzzle-01-02.cc b/2021/puzzle-01-02.cc new file mode 100644 index 0000000..953b056 --- /dev/null +++ b/2021/puzzle-01-02.cc @@ -0,0 +1,32 @@ +// +// Created by Matthew Gretton-Dann on 01/12/2021. +// + +#include +#include +#include +#include +#include + +int main(void) { + std::vector nums; + unsigned incrs{0}; + std::string line; + while (std::getline(std::cin, line)) { + nums.push_back(std::stoul(line)); + } + assert(nums.size() >= 3); + unsigned long prev{std::numeric_limits::max()}; + for (std::size_t pos = 0; pos <= nums.size() - 3; ++pos) { + unsigned long current{0}; + for (std::size_t i = pos + 0; i < pos + 3; ++i) { + current += nums[i]; + } + if (current > prev) { + ++incrs; + } + prev = current; + } + std::cout << "Number of increments: " << incrs << '\n'; + return EXIT_SUCCESS; +}