fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var sum := 0; for line in lines do [ var c := list_search(line, ':'); line := line[c + 1 .. ]; var winning : uint128 := 0; var n_winning := 0; var pass := false; while len_greater_than(line, 0) do [ if list_begins_with(line, " |") then [ line := line[2 .. ]; pass := true; continue; ] if line[0] <> ' ' then abort; if line[1] = ' ' then line[1] := '0'; var num := 10 * (line[1] - '0') + line[2] - '0'; line := line[3 .. ]; if not pass then winning bts= num; else if winning bt num then n_winning += 1; ] if n_winning <> 0 then sum += 0 bts (n_winning - 1); ] write(h[1], ntos(sum) + nl); ]