(TheOlympiadInInformatics)前回は数年ぶりのTopCoderで、コンテスト中にエディタの設定に手間取ったりしたので、今回こそはと思って参加しました。2問解けてまぁ行けたかなと思ってたら、2問目がシステムテストで落ちてて、またダメでした。今回間違えた問題がこれです。問題は人数不明のテスト受験者達が、人数がバラバラのグループに分けられていて、グループ毎の合計点数のみ与えられたときに、自分がK番以内の成績を取るには何点必要かというもの。最初に書いてたコードが以下です。単純に0点から順に順位を計算して行っています。Exceededになってました。それで問題文を見るとKの範囲が0〜10億で、あーそれはダメだという事で、他の人のもチラチラ見ながら二分探索で書き直したのが以下。1じゃ無くてmidなところが注意で、これはその時のmidが条件を満たす下限値になっている可能性があるからですね。あとvectorから最大値取得するのにstd::max_elementとかあるんですね。制約条件を読飛ばしているとか話にならないので、次は気をつけようと思います。