From abda0ed8b6f06d8acef1672051eb1a617b1966fd Mon Sep 17 00:00:00 2001 From: Antoine Date: Mon, 9 Dec 2024 09:56:14 +0100 Subject: [PATCH] Don't forget to clone --- 2024/09/solve.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/2024/09/solve.zig b/2024/09/solve.zig index f40d8ae..0350b34 100644 --- a/2024/09/solve.zig +++ b/2024/09/solve.zig @@ -79,9 +79,9 @@ fn part2(files: []File, freespaces: *FileList) u64 { while (right > 0) { for (0..freespaces.items.len, freespaces.items) |i, space| { + if (space.address >= files[right].address) + break; if (space.size >= files[right].size) { - if (space.address >= files[right].size) - break; files[right].address = space.address; freespaces.items[i].size -= files[right].size; if (freespaces.items[i].size == 0) { @@ -111,9 +111,15 @@ pub fn main() !void { defer freespaces.deinit(allocator); times[0] = timer.lap(); + var files2 = try files.clone(allocator); + defer files2.deinit(allocator); + var freespaces2 = try freespaces.clone(allocator); + defer freespaces2.deinit(allocator); + + timer.reset(); const one = part1(files.items, freespaces.items); times[1] = timer.lap(); - const two = part2(files.items, &freespaces); + const two = part2(files2.items, &freespaces2); times[2] = timer.lap(); std.debug.print("Compacted filesystem checksum : {:12}\n", .{one});