fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var nums := empty(list(int)); for l := 0 to len(lines) - 1 do nums +<= map(list_break_whitespace(lines[l]), ston); var ops := list_break_whitespace(lines[len(lines) - 1]); var sum := 0; for i := 0 to len(ops) do [ var res : int; if ops[i] = "+" then [ res := 0; for j := 0 to len(nums) do res += nums[j][i]; ] else if ops[i] = "*" then [ res := 1; for j := 0 to len(nums) do res *= nums[j][i]; ] else [ abort; ] sum += res; ] write(h[1], ntos(sum) + nl); ]