再帰的バイナリサーチ
二分探索(バイナリサーチ)を再帰的に実装すると、場合によってはとても便利です。今回の課題では、配列の中で target
と一致する要素が見つかったとき、その中でも最も左にある要素のインデックスを返し、見つからなかった場合には -1
を返すバイナリサーチ関数を実装します。
入力
最初の行には、要素の数を示す n
(1 ≤ n ≤ ) と、クエリの数を示す q
(1 ≤ q ≤ ) の2つの整数が与えられます。
次の行には、昇順で並んだ n
個の整数 ( ≤ ≤ ) が空白区切りで与えられます。
最後の行には、探索対象となる q
個の整数 ( ≤ ≤ ) が空白区切りで与えられます。
出力
プログラムは、各クエリで求めた結果のインデックスを q
個出力します(インデックスは0から始まります)。
例
入力 | 出力 |
---|---|
9 3 | 5 1 -1 |
Constraints
Time limit: 8 seconds
Memory limit: 512 MB
Output limit: 1 MB