From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:16:44 +0000 (-0500) Subject: dayy7 part2 X-Git-Url: http://git.skullheadx.com/nixos/static/projects.html?a=commitdiff_plain;h=9d83be5cd62b94e684f3f5cb8ee73b9831ad50bb;p=Advent-of-Code.git dayy7 part2 --- diff --git a/day7/src/main.zig b/day7/src/main.zig index 2527780..25cb33f 100644 --- a/day7/src/main.zig +++ b/day7/src/main.zig @@ -19,7 +19,7 @@ pub fn main() !void { const firstLine = lines.first(); const startPos = std.mem.indexOf(u8, firstLine, "S") orelse unreachable; - var positions = try std.array_list.Aligned(u32, null).initCapacity(alloc, firstLine.len); + var positions = try std.array_list.Aligned(u64, null).initCapacity(alloc, firstLine.len); defer positions.deinit(alloc); try positions.resize(alloc, firstLine.len); @@ -27,27 +27,25 @@ pub fn main() !void { positions.items[startPos] = 1; - var final_result: u64 = 0; while (lines.next()) |line| { for (line, 0..) |value, i| { - if (value == '^') { - if (positions.items[i] > 0) { - // do left - if (positions.items[i - 1] == 0) { - positions.items[i - 1] = 1; - } - // right - if (positions.items[i + 1] == 0) { - positions.items[i + 1] = 1; - } - - positions.items[i] = 0; - final_result += 1; - } + const position_value = positions.items[i]; + if (value == '^' and position_value > 0) { + // do left + positions.items[i - 1] += position_value; + // right + positions.items[i + 1] += position_value; + + positions.items[i] -= position_value; } } + std.debug.print("{}\n", .{positions}); } + var final_result: u64 = 0; + for (positions.items) |i| { + final_result += i; + } std.debug.print("result: {}\n", .{final_result}); try day7.bufferedPrint(); }