ABC 023
2026-05-13
AtCoder ABC 023 D「射撃王」
問題概要
- (N) 個の風船があり、風船 (i) は初期高度 (H_i)、1秒ごとに (S_i) 上昇する。
- 競技開始時に1個、その後1秒ごとに1個の風船を割れる(合計 (N) 個のタイミング 0,1,…,N-1 で割る)。
- 風船を割ったときの高度がその風船のペナルティ。最終的なペナルティは、割ったすべての風船のペナルティの最大値。
- 割る順番は自由に選べるとき、最終ペナルティの最小値を求めよ。
解法の着想
「最大値の最小化」は二分探索が有効です。
単調性
もしペナルティを (x) 以下にできるなら、(x+1) 以下にも当然できます。
逆に (x) でできないなら、(x-1) でもできません。
よって「ある値 (…