import Foundation let input = try String(contentsOfFile: CommandLine.arguments[1]) let commandPattern = try Regex(#"mul\(([0-9]+),([0-9]+)\)|don't\(\)|do\(\)"#) var enabled: Bool = true var sum: Int = 0 for cmd in input.matches(of: commandPattern) { switch cmd.output[0].substring { case "don't()": enabled = false case "do()": enabled = true default: if enabled { sum += Int(cmd.output[1].substring!)! * Int(cmd.output[2].substring!)! } } } print(sum)