Upper bound (上限)

ソート済みの n 個の整数からなる配列が与えられたとき、q 件のクエリに答えることが求められます。各クエリの内容は「与えられたリストで、x よりも大きい最初の要素は何か?」というものです。

入力

最初の行には、n (2 ≤ n ≤ ) と q (1 ≤ q ≤ ) の 2 つの整数が与えられます。

次の行には、昇順に並んだ n 個の整数 () が空白区切りで与えられます。

最後の行には、q 個のクエリ ( < ) が空白区切りで与えられます。

出力

プログラムは q 行を出力します。各行には、対応するクエリに対する答えを出力してください。

入力

出力

6 3 2 7 9 10 20 30 8 20 1

9 30 2

Hint

古典的な二分探索の実装では、[l; r) という範囲を用い、l は含み、r は含みません。しかし、場合によっては (l; r] のように l を除外し、r を含む形で実装したいこともあります。その場合、lrmid の計算方法を少し変更する必要があります。

Constraints

Time limit: 5 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue