From b307eb91b0481d60cc1ab630f0b30d5b7138a3f2 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 7 Dec 2022 16:14:51 +0100 Subject: dychotomy was really unnecessary --- 2022/07-no-space-left-on-device/second.zig | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to '2022/07-no-space-left-on-device/second.zig') diff --git a/2022/07-no-space-left-on-device/second.zig b/2022/07-no-space-left-on-device/second.zig index 537ef6e..49e53b0 100644 --- a/2022/07-no-space-left-on-device/second.zig +++ b/2022/07-no-space-left-on-device/second.zig @@ -51,17 +51,12 @@ fn solve(puzzle: []const u8, allocator: std.mem.Allocator) !u64 { } try sizes.append(stack.items[n]); // we do not forget the last one n = 30000000 - (70000000 - tot); // the amount of space we need to free - // let's run a dychotomy on the array - std.sort.sort(u64, sizes.items, {}, std.sort.asc(u64)); - var a: usize = 0; - var b = sizes.items.len - 1; - while (b - a > 2) { - const m = a + (b - a) / 2; - if (sizes.items[m] < n) { - a = m; - } else { - b = m; + // let's find the minimum that is the closest to that + tot = 70000000; + for (sizes.items) |v| { + if (v > n and v < tot) { + tot = v; } } - return sizes.items[b]; + return tot; } -- cgit v1.2.3