From 56e890cec0a28c0a485212ccebfaf774235a79a2 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Wed, 3 Jan 2024 23:35:54 +0100 Subject: prepare for more puzzles ... :) --- src/day06.cpp | 74 ----------------------------------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 src/day06.cpp (limited to 'src/day06.cpp') diff --git a/src/day06.cpp b/src/day06.cpp deleted file mode 100644 index 9a429c5..0000000 --- a/src/day06.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include -#include -#include -#include -#include -using namespace std; - -template -vector -read_ints(const string& line) -{ - stringstream iss{ line }; - return vector{ istream_iterator{ iss }, istream_iterator{} }; -} - -long -solve(long time, long winningDistance) -{ - long counter = 0; - for ( long pushTime = 0; pushTime < time; ++pushTime ) { - auto distance = (time * pushTime - pushTime * pushTime); - counter += long(distance > winningDistance); - } - return counter; -} - -void -part1() -{ - fstream input{ "data/day06.txt" }; - string line; - - getline(input, line); - auto times = read_ints(line.substr(line.find(':') + 1)); - - getline(input, line); - auto distances = read_ints(line.substr(line.find(':') + 1)); - - long result = 1; - for ( size_t idx = 0; idx != times.size(); ++idx ) { - result *= solve(times[idx], distances[idx]); - } - cout << result << endl; -} - -string -join(const string& line) -{ - stringstream iss{ line }; - return accumulate(istream_iterator{ iss }, istream_iterator{}, string{}); -} - -void -part2() -{ - fstream input{ "data/day06.txt" }; - string line; - - getline(input, line); - auto time = stol(join(line.substr(line.find(':') + 1))); - - getline(input, line); - auto distance = stol(join(line.substr(line.find(':') + 1))); - - cout << solve(time, distance) << endl; -} - -int -main() -{ - part1(); - part2(); -} -- cgit v1.3