fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var sum := 0; for line in lines do [ line := line[5 .. ]; var sc := list_search(line, ':'); var game_id := ston(line[ .. sc]); line := line[sc + 2 .. ]; line := list_replace_substring(line, ", ", ","); line := list_replace_substring(line, "; ", ","); var entries := list_break(line, ','); for e in entries do [ var sp := list_search(e, ' '); var n := ston(e[ .. sp]); e := e[sp + 1 .. ]; var limit : int; if e = "red" then limit := 12; else if e = "green" then limit := 13; else if e = "blue" then limit := 14; else abort; if n > limit then goto skip; ] sum += game_id; skip: ] write(h[1], ntos(sum) + nl); ]