From a7711b0bab7524f637c7503313133c5c0e61cd03 Mon Sep 17 00:00:00 2001 From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Mon, 1 Dec 2025 22:24:51 -0500 Subject: [PATCH] day1 part 2 --- day1_test.txt | 10 ++++++++++ day1_test2.txt | 2 ++ src/main.zig | 13 ++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 day1_test.txt create mode 100644 day1_test2.txt diff --git a/day1_test.txt b/day1_test.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/day1_test.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/day1_test2.txt b/day1_test2.txt new file mode 100644 index 0000000..58f243e --- /dev/null +++ b/day1_test2.txt @@ -0,0 +1,2 @@ +L500 +L50 diff --git a/src/main.zig b/src/main.zig index 9995a7c..088b4da 100644 --- a/src/main.zig +++ b/src/main.zig @@ -23,16 +23,27 @@ pub fn main() !void { } // std.debug.print("{s}\n", .{chunk[1..]}); const value = try std.fmt.parseInt(i32, chunk[1..], 10); + const d = @divTrunc(value, 100); + const r = @rem(value, 100); + std.debug.print("old_current:{} value:{s} d:{}, r:{} | ", .{ current, chunk, d, r }); if (chunk[0] == 'L') { + if (r > 0 and current - r < 0 and current != 0) { + numZero += 1; + } current = @mod(current - value, 100); } else { + if (r > 0 and r + current > 100) { + numZero += 1; + } current = @mod(current + value, 100); } + numZero += d; if (current == 0) { numZero += 1; } + std.debug.print("current:{} numZero:{}\n", .{ current, numZero }); } // Prints to stderr, ignoring potential errors. - std.debug.print("{}", .{numZero}); + std.debug.print("{}\n", .{numZero}); try aoc.bufferedPrint(); } -- 2.54.0