Swift题解

while let n = Int(readLine() ?? "") {
    let ws = readLine() ?? ""
    let ns = readLine() ?? ""
    let weights = ws.components(separatedBy: " ").map{ Int($0) ?? 0 }
    let nums = ns.components(separatedBy: " ").map{ Int($0) ?? 0 }
    var kinds = Set<Int>()
    kinds.insert(0)
    for i in 0 ..< n {
        for _ in 0 ..< nums[i] {
            let tmp = kinds
            tmp.forEach { val in
                kinds.insert(val + weights[i])
            }
        }
    }
    print(kinds.count)
}