long double なら通るみたいなツイートいくつか見かけたんですがなぜこれは通らないのでしょうか? ld = long double です atcoder.jp/contests/abc30…


sortの比較関数についてx.second > y.secondとしているのが原因だと思います。成功率が同じ場合昇順に並び替えないといけませんが、この場合だとx.second == y.secondの時のものが昇順に並ばないと思います。(サンプル2はたまたま通っていますが、そうならないケースがありそうです)


ありがとうございます!!! もう一度よく考えてみます


解説にも書いてある、C++のsortは安定ソートでないため順序が同率だと元の順番が変わる可能性がある、というやつじゃないですか? 比較関数の部分を return x.second > y.second || (x.second==y.second && x.first < y.first) にするかstable_sortを使うかで通ると思います


具体例まで添えていただきありがとうございます!! しっかり考えます!


United States Trends
Loading...

Something went wrong.


Something went wrong.