入力例 3 9 500 300 800 200 100 600 900 700 400 4 3 1000 1000 1000 0 0 出力例 1800 1000 解説 Partition Problem といいます。 [この問題では、本の厚さの制限が緩いので、力任せ(本棚の幅を少しづづ厚くしていき貪欲に解く)で解けたのかもしれませんが、点数から察して、悲しいことに設定ミスか、または意図的に難易度を下げたか、または実行時間の制限を厳しくしているのでしょうか。力任せで解けないのであれば難易度はさらに高くなります。] 出題者が求めた解法は、動的計画法または二分法だと思います。 ここでは、動的計画法でこの Partition Problem を解きます。 Partition Problem とは、n 個の数からなる数列 S = {s1, ..... sn} を k 個の部分に分割するときに、各部分

