summaryrefslogtreecommitdiff
path: root/src/day-1/part-1.zig
diff options
context:
space:
mode:
authorame <[email protected]>2025-12-01 01:40:24 -0600
committerame <[email protected]>2025-12-01 01:40:24 -0600
commitb1bcf07c564298ac1bd1e87f9c7bbddb60fb1c62 (patch)
tree28234bd5565090d5bba29f4da068004bdda18b84 /src/day-1/part-1.zig
parentc023a03eb42ca225346bc4fdd466520fa5eff276 (diff)
day 1
Diffstat (limited to 'src/day-1/part-1.zig')
-rw-r--r--src/day-1/part-1.zig32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/day-1/part-1.zig b/src/day-1/part-1.zig
new file mode 100644
index 0000000..84c23e2
--- /dev/null
+++ b/src/day-1/part-1.zig
@@ -0,0 +1,32 @@
+const std = @import("std");
+
+pub fn main() !void {
+ //var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+ //defer gpa.deinit();
+ //const alloc = gpa.allocator();
+
+ const path = "input.txt";
+ const fp = try std.fs.cwd().openFile(path, .{.mode = std.fs.File.OpenMode.read_only});
+ defer fp.close();
+ var reader = fp.reader();
+
+ var buffer: [256]u8 = undefined;
+
+ var at: i32 = 50;
+ var z: u64 = 0;
+
+ while(try reader.readUntilDelimiterOrEof(&buffer, '\n')) |line| {
+ const num = line[1..];
+
+ var spin = try std.fmt.parseInt(i32, num, 10);
+ spin = @mod(spin, 100);
+ if(line[0] == 'L') spin = -spin;
+ at += spin;
+ if(at < 0) at = 100 - -at;
+ if(at > 99) at = at - 100;
+
+ if(at == 0) z += 1;
+ //std.debug.print("{s} {d} {d}\n", .{line, spin, at});
+ }
+ std.debug.print("{d}\n", .{z});
+}