Files
adventofcode2025/day1/zig/main.zig

45 lines
1.1 KiB
Zig
Raw Normal View History

2025-12-01 18:45:43 +01:00
const std = @import("std");
const MAGIC_NUMBER = 100;
pub fn main() !void {
var stdin_buffer: [1024]u8 = undefined;
var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);
const stdin = &stdin_reader.interface;
var current: i32 = 50;
var task1: u32 = 0;
var task2: u32 = 0;
while (try stdin.takeDelimiter('\n')) |line| {
var num = try std.fmt.parseInt(i32, line[1..], 10);
switch (line[0]) {
'L' => {
while (num > 0) : (num -= 1) {
current = @mod(current - 1, MAGIC_NUMBER);
if (current == 0) {
task2 += 1;
}
}
},
'R' => {
while (num > 0) : (num -= 1) {
current = @mod(current + 1, MAGIC_NUMBER);
if (current == 0) {
task2 += 1;
}
}
},
else => unreachable,
}
if (current == 0) {
task1 += 1;
}
}
std.debug.print("{d}\n", .{task1});
std.debug.print("{d}\n", .{task2});
}