diff --git a/d1/main.cxx b/d1/main.cxx index 6ba8ee0..1a267e9 100644 --- a/d1/main.cxx +++ b/d1/main.cxx @@ -10,7 +10,7 @@ constexpr const char content[] = { #embed "input.txt" }; -void part_1() { +int part_1() { std::vector left_vec, right_vec; std::istringstream iss{content}; @@ -27,10 +27,10 @@ void part_1() { diff_acc += std::abs(left_vec[i] - right_vec[i]); } - cout << diff_acc << endl; + return diff_acc; } -void part_2() { +int part_2() { std::vector left_vec; std::unordered_map right_map; std::istringstream iss{content}; @@ -45,12 +45,17 @@ void part_2() { for (auto left_num : left_vec) { sim_acc += right_map[left_num] * left_num; } - - cout << sim_acc << endl; + + return sim_acc; } int main() { - part_1(); - part_2(); + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + auto p1_val = part_1(); + std::chrono::steady_clock::time_point middle = std::chrono::steady_clock::now(); + auto p2_val = part_2(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); + cout << "Part 1: " << p1_val << " (" << std::chrono::duration_cast(middle - begin).count() << "µs)" << endl; + cout << "Part 2: " << p2_val << " (" << std::chrono::duration_cast(end - middle).count() << "µs)" << endl; return 0; } diff --git a/d2/main.cxx b/d2/main.cxx index bc01286..5a828ec 100644 --- a/d2/main.cxx +++ b/d2/main.cxx @@ -40,7 +40,7 @@ bool safe(const std::vector& level) { return true; } -void part_1() { +int part_1() { std::istringstream iss{content}; std::string line; int correct_acc{0}; @@ -62,7 +62,7 @@ void part_1() { correct_acc++; } } - cout << correct_acc << endl; + return correct_acc; } bool safe_dampener(const std::vector& level) { @@ -80,7 +80,7 @@ bool safe_dampener(const std::vector& level) { return false; } -void part_2() { +int part_2() { std::istringstream iss{content}; std::string line; int correct_acc{0}; @@ -102,11 +102,16 @@ void part_2() { correct_acc++; } } - cout << correct_acc << endl; + return correct_acc; } int main() { - part_1(); - part_2(); + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + auto p1_val = part_1(); + std::chrono::steady_clock::time_point middle = std::chrono::steady_clock::now(); + auto p2_val = part_2(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); + cout << "Part 1: " << p1_val << " (" << std::chrono::duration_cast(middle - begin).count() << "µs)" << endl; + cout << "Part 2: " << p2_val << " (" << std::chrono::duration_cast(end - middle).count() << "µs)" << endl; return 0; } diff --git a/d3/main.cxx b/d3/main.cxx index aeb7a47..85865e1 100644 --- a/d3/main.cxx +++ b/d3/main.cxx @@ -7,7 +7,7 @@ constexpr const char content[] = { #embed "input.txt" }; -void part_1() { +int part_1() { std::string input = std::string(content); auto acc{0}; @@ -22,10 +22,10 @@ void part_1() { input = match.suffix().str(); } - cout << acc << endl; + return acc; } -void part_2() { +int part_2() { std::string input = std::string(content); auto acc{0}; @@ -46,11 +46,16 @@ void part_2() { input = match.suffix().str(); } - cout << acc << endl; + return acc; } int main() { - part_1(); - part_2(); + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + auto p1_val = part_1(); + std::chrono::steady_clock::time_point middle = std::chrono::steady_clock::now(); + auto p2_val = part_2(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); + cout << "Part 1: " << p1_val << " (" << std::chrono::duration_cast(middle - begin).count() << "µs)" << endl; + cout << "Part 2: " << p2_val << " (" << std::chrono::duration_cast(end - middle).count() << "µs)" << endl; return 0; } diff --git a/d4/main.cxx b/d4/main.cxx index 65114e8..88da3af 100644 --- a/d4/main.cxx +++ b/d4/main.cxx @@ -48,7 +48,7 @@ int count_xmas(const std::vector &grid, int i, int j) { return up + down + left + right + up_left + up_right + down_left + down_right; } -void part_1() { +int part_1() { std::istringstream input_stream(content); std::string line; std::vector grid; @@ -66,7 +66,7 @@ void part_1() { } } - cout << count_acc << endl; + return count_acc; } @@ -94,7 +94,7 @@ bool is_mas_cross(const std::vector& grid, int i, int j) { return true; } -void part_2() { +int part_2() { std::istringstream input_stream(content); std::string line; std::vector grid; @@ -112,11 +112,16 @@ void part_2() { } } - cout << count_acc << endl; + return count_acc; } int main() { - part_1(); - part_2(); + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + auto p1_val = part_1(); + std::chrono::steady_clock::time_point middle = std::chrono::steady_clock::now(); + auto p2_val = part_2(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); + cout << "Part 1: " << p1_val << " (" << std::chrono::duration_cast(middle - begin).count() << "µs)" << endl; + cout << "Part 2: " << p2_val << " (" << std::chrono::duration_cast(end - middle).count() << "µs)" << endl; return 0; }