const print = std.debug.print; const std = @import("std"); const input = @embedFile("input"); inline fn get(x: i8, y: i8) u8 { return switch (x) { 0...99 => switch (y) { 0...99 => input[@intCast(usize, x) + @intCast(usize, y) * 101], else => ':', }, else => ':', }; } pub fn main() void { var sum: usize = 0; defer print("{}\n", .{ sum }); var row: i8 = 0; while (row < 100) : (row += 1) { var col: i8 = 0; while (col < 100) : (col += 1) { const height = get(col, row); sum += @boolToInt(@reduce(.And, @Vector(4, u8){ get(col + 1, row), get(col, row + 1), get(col - 1, row), get(col, row - 1), } > @splat(4, height))) * (height - '/'); } } }