From c70100c1f1feaeba22f8746606323582b6190373 Mon Sep 17 00:00:00 2001 From: Thraix Date: Mon, 1 Dec 2025 20:37:03 +0100 Subject: [PATCH] Add solution for 2025 Day 1 --- res/2025/day01/test_input.txt | 10 ++++++++ src/2025/Day01.cpp | 46 +++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 res/2025/day01/test_input.txt diff --git a/res/2025/day01/test_input.txt b/res/2025/day01/test_input.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/res/2025/day01/test_input.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/src/2025/Day01.cpp b/src/2025/Day01.cpp index 52b0b28..a89a4d7 100644 --- a/src/2025/Day01.cpp +++ b/src/2025/Day01.cpp @@ -5,10 +5,14 @@ namespace y2025::day01 using InputType = std::vector; REGISTER_DAY(2025, Day01, InputType, int); - REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 1, 0); - REGISTER_TEST(2025, Day01, Input, 1, 0); - REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 2, 0); - REGISTER_TEST(2025, Day01, Input, 2, 0); + REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 1, 3); + REGISTER_TEST(2025, Day01, Input, 1, 1152); + REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 2, 6); + REGISTER_TEST(2025, Day01, Input, 2, 6671); + + void test(int i) + { + } READ_INPUT(input) { @@ -17,8 +21,11 @@ namespace y2025::day01 while (std::getline(input, str)) { std::stringstream ss{str}; + char c; int n; - ss >> n; + ss >> c >> n; + if (c == 'L') + n = -n; vec.emplace_back(n); } return vec; @@ -26,11 +33,36 @@ namespace y2025::day01 OUTPUT1(input) { - return 0; + int dial = 50; + int zeros = 0; + for (int n : input) + { + dial += n; + dial %= 100; + dial = (dial + 100) % 100; + if (dial == 0) + zeros++; + } + return zeros; } OUTPUT2(input) { - return 0; + int dial = 50; + int zeros = 0; + for (int n : input) + { + for (int i = 0; i < std::abs(n); i++) + { + dial += Helper::Sign(n); + dial = ((dial % 100) + 100) % 100; + if (dial == 0) + { + zeros++; + } + } + } + return zeros; } + }