Upper bound (上限)
ソート済みの n 個の整数からなる配列が与えられたとき、q 件のクエリに答えることが求められます。各クエリの内容は「与えられたリストで、x よりも大きい最初の要素は何か?」というものです。
入力
最初の行には、n (2 ≤ n ≤ ) と q (1 ≤ q ≤ ) の 2 つの整数が与えられます。
次の行には、昇順に並んだ n 個の整数 ( ≤ ≤ ) が空白区切りで与えられます。
最後の行には、q 個のクエリ ( ≤ < ) が空白区切りで与えられます。
出力
プログラムは q 行を出力します。各行には、対応するクエリに対する答えを出力してください。
例
入力 | 出力 |
|---|---|
6 3 | 9 |
Hint
古典的な二分探索の実装では、[l; r) という範囲を用い、l は含み、r は含みません。しかし、場合によっては (l; r] のように l を除外し、r を含む形で実装したいこともあります。その場合、l、r、mid の計算方法を少し変更する必要があります。
Constraints
Time limit: 5 seconds
Memory limit: 512 MB
Output limit: 1 MB