3400

明日に備えて肩慣らし。タグをPOJにしておくべきだったかも?

問題

石がいくつかある。それぞれに重さと価値があって、二つのバケツに振り分ける。最初は一つ目のバケツに石を入れていき、D+1以上の重さになったらもう一つのバケツに入れていく。二つ目のバケツの重さが、一つ目のバケツの重さよりもD+1以上重くなったら一つ目のバケツに入れていく、という風にする。このとき、二つ目のバケツに入っている石の価値の合計値の最大値を答えよ、という問題。

解答例

石の数は10以下なので、単純に全探索をしても十分に間に合う。関数二つ作って交互に呼んでもいいし、フラグ管理を適当にやって一つの再起関数にしてもいい。やるだけ。