const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void async function () { // Write your code here while(await readline()) { let m = (await readline()).split(' ').map(Number) let x = (await readline()).split(' ').map(Number) let res = new Set([0]) for (let i=0; i<m.length; i++) { for (let j=0; j<x[i]; j++) { let tmp = [...res] tmp.forEach(el => { let w = el + m[i] res.add(w) }) } } console.log(res.size) } }()
思路是,初始化一个Set,元素是0,然后每碰到一个数就对当前Set的每个元素加这个新碰到的数,Set可以自动去重