简单易懂

let n;
while (n = readline()) {
    let weight = readline().split(' ').map(Number);
    let num = readline().split(' ').map(Number);
    let res = new Set([0]);
    // 遍历每个不同的重量
    for (let i = 0; i < weight.length; i++) {
        // 得到当前所有的重量数
        let temp = [...res];
        // 列举当前重量及其数量的所有可能结果
        for (let j = 1; j <= num[i]; j++) {
            temp.forEach(item => {
                let val = item + j * weight[i];
                if (!res.has(val)) {
                    res.add(val)
                }
            })
            
        }
    }
    
    print(res.size);
}