summaryrefslogtreecommitdiff
path: root/src/days
diff options
context:
space:
mode:
authorcominixo <cominixo.dev>2025-12-02 22:55:40 +0000
committercominixo <cominixo.dev>2025-12-02 23:15:27 +0000
commitdf84b513a689bd2b420092730617cffc9601e758 (patch)
tree16c2a526ed28c0d534799c13a84ceb98d4a22c3a /src/days
Day 1
Diffstat (limited to 'src/days')
-rw-r--r--src/days/1/1.zig31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/days/1/1.zig b/src/days/1/1.zig
new file mode 100644
index 0000000..6ec4a1c
--- /dev/null
+++ b/src/days/1/1.zig
@@ -0,0 +1,31 @@
+const std = @import("std");
+
+pub fn main() !void {
+
+ const buf = @embedFile("input");
+
+ var lines = std.mem.splitScalar(u8, buf, '\n');
+
+ var dial: i32 = 50;
+ var num_zeros: i32 = 0;
+ var num_zeros_p1: i32 = 0;
+
+
+ while (lines.next()) |line| {
+ if (line.len < 2) continue;
+
+ const num = try std.fmt.parseInt(i32, line[1.. line.len], 10);
+
+ const left_turn = line[0] == 'L';
+
+ if (dial == 0 and left_turn) num_zeros -= 1;
+ dial = if(left_turn) dial - num else dial + num;
+ const increment: i32 = @intCast(@abs(@divFloor(if(left_turn) dial-1 else dial,100)));
+ dial = @mod(dial,100);
+
+
+ num_zeros += increment;
+ if(dial == 0) num_zeros_p1 += 1;
+ }
+ std.debug.print("{} {}\n", .{num_zeros_p1, num_zeros});
+}