公式
C - Sake or Water 解説
by
C - Sake or Water 解説
by
ynymxiaolongbao
高橋君がカップを選んだあとで、”高橋君の敵”がどのカップに日本酒を入れるかを決めると考えてよいです。
まず、高橋君は入っている量が多い方からいくつかのカップを選ぶとしてよいです.これは、現時点ではカップどうしを区別するものは液体の量のみであり、この値が大きなカップを選ぶことが最適な戦略であるからです。高橋君が選んだカップの数を \(M\) とします。
次に、”高橋君の敵”は、高橋君の選択を見て、高橋君が飲む日本酒の量をできるだけ小さくするように日本酒を入れるカップを決めます。たとえば、入っている量が少ない方から \(K\) 個に日本酒を入れればよいです。
高橋君および”高橋君の敵”がこのように行動したときに、高橋君が \(X\) ml 以上の日本酒を飲める最小の \(M\) が答えになります。
この値を求めるには、\(A\) をソートして、 \(M = 1,2,\ldots\) について高橋君が飲む日本酒の量を求めて行き、はじめて \(X\) 以上になったときの \(M\) の値を出力すれば良いです。
計算量は \(O(N \log N)\) です。
投稿日時:
最終更新:
