新・Bランクレベルアップメニュー【全探索 2】コップの水
【全探索 2】コップの水 コード (C++実装例参照)
reader.on('close', () => {
const [N, X] = lines[0].split(' ').map(Number);
const W = [];
let ans = 0;
for (let i = 0; i < N; i++) {
W.push(Number(lines[i + 1]));
}
for (let i = 0; i < Math.pow(2, N); i++) {
let sum = 0;
let tmp = i;
for (let j = 0; j < N; j++) {
if (tmp % 2 === 1) {
sum += W[j];
}
tmp = parseInt(tmp / 2);
}
if (sum <= X) {
ans = Math.max(ans, sum);
}
}
console.log(ans);
});
bit全探索…。
C++の解答コード例を参照しました。
コメント