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