#C40203. 二分查找

二分查找

题目描述

对有序数组进行二分查找,是一种性能卓越的算法:目标是在有序数组 a[]a[ ] 中查找是否有 a[k]=keya[k] = key ,若有返回 kk ,否则返回 1-1

  • 若有多个 a[k]=keya[k]=key ,请输出最右侧的 kk
  • 下标 kk00 开始计数。

输入格式

第一行包含 11 个整数 NN ,代表数组长度。
第二行包含 NN 个( N30000N \le 30000 )int 范围内的整数,空格隔开。
第三行包含 11 个整数 TT ,代表有 TT 组询问。
第四行包含 TT 个( T30000T \le 30000 )int 范围内的整数,表示每组询问需要查找的 keykey 值,空格隔开。

输出格式

一行,对于每组询问输出结果(k or -1),空格隔开。

样例

3
-2 -2 1
3
-2 -2 -1
1 1 -1
10
1 1 1 1 1 2 2 3 3 5
5
1 1 2 3 5
4 4 6 8 9