F - Invisible Hand 解説 by evima

公式解説の別解の補足

公式解説の「別解」をもう少し整理すると、\(N + M\) 個の値 \(A_1, \dots, A_N, B_1 + 1, \dots, B_M + 1\) を昇順にソートした際の \(M\) 番目の値が答えであることが分かります。(以下、公式解説の記号を使います。)これは、\(x = 0\) のとき \(f(x) - g(x) = -M\) であり、\(x\) を増やしていくと \(x = A_1, \dots, A_N, B_1 + 1, \dots, B_M + 1\)\(f(x) - g(x)\)\(1\) ずつ増加するためです。

実装例 (Python)

N, M = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
print(sorted(A + list(map(lambda x: x + 1, B)))[M - 1])

投稿日時:
最終更新: