From 2f1784a972ea58152b34fda2ce61bfc71cd1a8b2 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 22 Dec 2024 17:55:21 +0100 Subject: aoc 2024, day 22, part 1 --- 2024/src/day22.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 2024/src/day22.cpp diff --git a/2024/src/day22.cpp b/2024/src/day22.cpp new file mode 100644 index 0000000..b103986 --- /dev/null +++ b/2024/src/day22.cpp @@ -0,0 +1,47 @@ +#include +#include +#include +#include +using namespace std; + +vector +read_file(string_view filename) +{ + fstream input{ filename }; + vector lines; + + for ( unsigned long value{}; input >> value; ) { + lines.emplace_back(value); + } + + return lines; +} + +unsigned long +step(unsigned long value) +{ + value = (value ^ (value * 64)) % 16777216; + value = (value ^ (value / 32)) % 16777216; + value = (value ^ (value * 2048)) % 16777216; + return value; +} + +void +part1(const vector& values) +{ + unsigned long sum = 0; + for ( auto value: values ) { + for ( int i = 0; i != 2000; ++i ) { + value = step(value); + } + sum += value; + } + cout << sum << endl; +} + +int +main() +{ + auto data = read_file("data/day22.txt"); + part1(data); +} -- cgit v1.3