advent-of-code/2023/day-06/part_two.zig

35 lines
881 B
Zig

const std = @import("std");
const common = @import("common.zig");
const alloc = std.heap.page_allocator;
const Buffer = std.ArrayList(u8);
const data = @embedFile("inputs/puzzle.txt");
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
const races = try common.parse(data);
defer races.deinit();
const time = try concat_numbers(races.times.items);
const record = try concat_numbers(races.distances.items);
const nums_beat = common.calculate(time, record);
try stdout.print("{d}\n", .{nums_beat});
}
fn concat_numbers(nums: []const u32) !u64 {
var buf = Buffer.init(alloc);
defer buf.deinit();
for (nums) |race_times| {
const segment = try std.fmt.allocPrint(alloc, "{d}", .{race_times});
try buf.appendSlice(segment);
}
const num = try std.fmt.parseInt(u64, buf.items, 10);
return num;
}