const parseUnsigned = std.fmt.parseUnsigned; const print = std.debug.print; const rotate = std.mem.rotate; const std = @import("std"); const tokenize = std.mem.tokenize; const input = @embedFile("input"); pub fn main() !void { var timer = [_]usize{ 0 } ** 9; defer print("{}\n", .{ @reduce(.Add, @as(@Vector(9, usize), timer)) }); var list = tokenize(input[0..input.len-1], ","); while (list.next()) |i| timer[try parseUnsigned(usize, i, 10)] += 1; var i: usize = 0; while (i < 256) : (i += 1) { rotate(usize, timer[0..], 1); timer[6] += timer[8]; } }