AtCoder Grand Contest B - Voting Judges
問題概要
問題が問あり、番目の問題のスコアはである。人が独立に問選び、それらのスコアをずつ上げる。人の選択後、スコアの降順に並べられ、最初の問が採用される。採用される可能性のある問題は何問あるか?
制約
解説
以降0-indexedとする。問題を降順ソートする。上からP-1問目を含む同率順位までは、必ず選ばれる。この境界をとする。
今回、選ばれるかどうかの境界は、二分探索することができる。よって、問題が選ばれるかどうかをほどかけて調べることを考えれば、問題をで解くことができる。
- の場合
は必ず選ばれる。
人が独立に問選ぶ場合、一つの問題は最大で回選ぶことが可能である。よって、は、必ずされると仮定してよい。
- の場合
どう選んでもは上位問に入ることはできない。
- の場合
選ばれる可能性があるかどうか判定したい。
なるは、してよい。が上位問に入ることができるかどうかに関係しないからである。
なるは、を超えないところまで、つまり、だけ投票してよい。これ以上投票してを超えてしまうと、が上位問に入ることができなくなる。
なるは、上位に影響しないので、してよい。
これらの が上位問になるために足していい数の合計が以上あれば、は上位問になることができると言える。未満だと、足せなくて溢れた票が回足されていない他の問題に流れ、が上位問に入れなくなる。