From 020549d323273821665f638124606d43c0b6251a Mon Sep 17 00:00:00 2001 From: Matthew Gretton-Dann Date: Mon, 13 Dec 2021 11:49:38 +0000 Subject: [PATCH] Add 2017 day 1 puzzles --- 2017/puzzle-01-01.cc | 21 +++++++++++++++++++++ 2017/puzzle-01-02.cc | 23 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 2017/puzzle-01-01.cc create mode 100644 2017/puzzle-01-02.cc diff --git a/2017/puzzle-01-01.cc b/2017/puzzle-01-01.cc new file mode 100644 index 0000000..f80a640 --- /dev/null +++ b/2017/puzzle-01-01.cc @@ -0,0 +1,21 @@ +#include +#include + +auto main() -> int +{ + std::string line; + if (!std::getline(std::cin, line)) { + std::cerr << "Unable to parse line\n"; + return 1; + } + + std::uint64_t v{0}; + for (std::size_t idx{0}; idx < line.size() - 1; ++idx) { + if (line[idx] == line[idx + 1]) { v += line[idx] - '0';} + } + if (line[0] == line[line.size() - 1]) { + v += line[0] -'0'; + } + + std::cout << "CAPTCHA: " << v << '\n'; +} diff --git a/2017/puzzle-01-02.cc b/2017/puzzle-01-02.cc new file mode 100644 index 0000000..3f37d09 --- /dev/null +++ b/2017/puzzle-01-02.cc @@ -0,0 +1,23 @@ +#include +#include + +auto main() -> int +{ + std::string line; + if (!std::getline(std::cin, line)) { + std::cerr << "Unable to parse line\n"; + return 1; + } + + std::string h1{line.substr(0, line.size() / 2)}; + std::string h2{line.substr(line.size() / 2)}; + + std::uint64_t v{0}; + for (std::size_t idx{0}; idx < h1.size(); ++idx) { + if (h1[idx] == h2[idx]) { + v += (line[idx] - '0') * 2; + } + } + + std::cout << "CAPTCHA: " << v << '\n'; +}