例題 Q-2-10. 子集合的和 (折半枚舉)


Submit solution

分數: 100 (partial)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

輸入 \(n\) 個正整數 \(A[1..n]\),另外給了一個整數 \(P\),請計算 \(A\) 中元素各種組合中,其和最接近 \(P\) 但不超過 \(P\) 的和是多少。 每個元素可以選取或不選取但不可重複選,\(A\) 中的數字可能重複。\(A[i]\) 與 \(P\) 均不超過 \(2^{60}\),\(0 < n \leq 38\)。

輸入格式

第一行是 \(n\) 與 \(P\), 第二行 \(n\) 個整數是 \(A[i]\),同行數字以空白間隔。

輸出格式

最接近 \(P\) 但不超過 \(P\) 的和。

範例輸入

5 17
5 5 8 3 10

範例輸出

16

評論

目前沒有評論。