From 3569846dad2bae95412762363ff9301f0540ab62 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 2 Dec 2022 16:33:53 +0100 Subject: day01 --- day01.zig | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 day01.zig (limited to 'day01.zig') diff --git a/day01.zig b/day01.zig new file mode 100644 index 0000000..a12204c --- /dev/null +++ b/day01.zig @@ -0,0 +1,33 @@ +const std = @import("std"); +const data = @embedFile("day01"); + +var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){}; +const gpa = general_purpose_allocator.allocator(); + +fn moreThan(context: void, a: i32, b: i32) std.math.Order { + _ = context; + return std.math.order(b, a); +} + +pub fn main() !void { + var pq = std.PriorityQueue(i32, void, moreThan).init(gpa, {}); + + var lines = std.mem.split(u8, data, "\n"); + + var food: i32 = 0; + while (lines.next()) |line| { + var x: i32 = std.fmt.parseInt(i32, line, 10) catch { + try pq.add(food); + food = 0; + continue; + }; + food += x; + } + + var max3food: i32 = 0; + max3food += pq.remove(); + std.debug.print("{}\n", .{max3food}); + max3food += pq.remove(); + max3food += pq.remove(); + std.debug.print("{}\n", .{max3food}); +} -- cgit 1.4.1