No.393

顧客の要望は昇順にソートしておく.

まずは短い要望から順番に2本の竹に貪欲法で割り当てていく. このとき 個の要望に応えたとする. ならばすべての要望に応えられる.

そうでない場合は, 2本の竹の余りの長さ を考えたとき, ならば 個の要望に応えられる可能性がある.

なお, , , であるので, となるので, 個以上の要望に応えることはできない.

次に の要望で作れる長さを DP で求める. これはビットORとビットシフトで計算できるので高速化できる.

そして としたとき, または の区間でひとつでもその長さが作れるかどうかを見る. 作れるならば 個の要望に答えられる.