Codeforces Round #653 (Div. 3) - E2. Reading Books (hard version)
解説
基本的にE1と同じで、AliceとBobが両方好きな本を使った数を固定した全探索をします。
このとき、at least を満たすようにとってまだ冊に届いていない場合、使っていない中で小さいほうからとっていくのが最適なのは明らかでしょう。
あとはこれを実装する方針ですが、使っていないのをBITにいれていくのがやりやすいと思います。
BITを2本用意して、
- bit_c : 使ってない中で時間かかるのが何本あるか
- bit_s : 使ってない中で時間かかるの合計
みたいな感じを座圧してBITにいれてあげるといいです。
具体的な実装はそこそこコメントいれてみたので、参考にして見てください。