You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
999 B
Zig

const input = @embedFile("input.txt");
const std = @import("std");
pub fn main() !void {
var it = std.mem.tokenize(u8, input, "\n");
var busses:[10]u32 = std.mem.zeroes([10:0]u32);
var i: u32 = 0;
while(it.next())
|line|
:(i+=1)
{
busses[i] = (try std.fmt.parseInt(u32, line, 10));
}
std.debug.print("Busses:\n", .{});
for(busses)|bus|{
std.debug.print("{d}\n", .{bus});
}
const start: u32 = 1000391;
var n: u32 = start;
var found = false;
while(n > 0 and !found):(n+=1){
if(n % 1000 == 0)
std.debug.print("Tick: {d}\n", .{n});
for(busses)|bus|{
//skip
if(bus == 0){
continue;
}
if(n % bus == 0){
found = true;
std.debug.print("Found! bus {d}, tick {d}, wait {d}, answer {d}\n", .{bus, n, n - start, (n-start)*bus});
break;
}
}
}
}