No.393
顧客の要望は昇順にソートしておく.
まずは短い要望から順番に2本の竹に貪欲法で割り当てていく. このとき 個の要望に応えたとする. ならばすべての要望に応えられる.
そうでない場合は, 2本の竹の余りの長さ を考えたとき, ならば 個の要望に応えられる可能性がある.
なお, , , であるので, となるので, 個以上の要望に応えることはできない.
次に の要望で作れる長さを DP で求める. これはビットORとビットシフトで計算できるので高速化できる.
そして としたとき, または の区間でひとつでもその長さが作れるかどうかを見る. 作れるならば 個の要望に答えられる.