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