3876: 【例83.2】 二分查找

文件提交:无需freopen 内存限制:512 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:20 解决:1

题目描述

## 【例83.2】 二分查找 时间限制:1000 ms 空间限制:512 MiB 题目类型:传统 ### 题目描述 对有序数组进行二分查找,是一种性能卓越的算法:目标是在有序数组a[]中查找是否有a[k]=key,若有返回 $k$ ,否则返回 $-1$ 。 * 若有多个a[k]=key,请输出最小的 $k$ * 下标 $k$ 从1开始计数 ### 输入格式 第一行包含 $1$ 个整数 $N$ ,代表数组长度 第二行包含 $N个(N ≤ 30000)$ int范围内的整数,保证升序,空格隔开。 第三行包含 $1$ 个整数T,代表有 $T$ 组询问 第四行包含 $T$ 个 $(T ≤ 30000)$ int范围内的整数,表示每组询问需要查找的key值,空格隔开。 ### 输出格式 一行,对于每组询问输出结果 $(k$ $ or -1)$ ,空格隔开。 ### 样例 #### 样例输入 ``` 3 -2 -2 1 3 -2 -2 -1 ``` #### 样例输出 ``` 1 1 -1 ``` ### 数据范围与提示 对于 $100\%$ 的数据, $N ≤ 30000,T ≤ 30000 $。 ### 分类标签 (无)