普及⏱ 1000ms💾 256MB#P5107🏷️ 二分

题目描述

登山线路上沿路设置了 $n$ 个海拔基准点,测得其海拔形成一个非降序列(从小到大排列,可能有相等的)。探险队报出 $m$ 个目标海拔,对每个目标海拔,请找出序列中与它最接近的基准点海拔;若有多个基准点同样接近,输出其中最小的一个。

输入格式

第一行一个整数 $n$,为序列长度。 第二行 $n$ 个整数,非降排列,用空格分隔。 第三行一个整数 $m$,为询问个数。 接下来 $m$ 行,每行一个整数,为要查询的目标海拔。

输出格式

$m$ 行,每行一个整数:与对应目标海拔最接近的基准点海拔(同为最近时取较小者),保持询问顺序。

数据范围

$$1 \le n \le 5000,\quad 1 \le m \le 100,\quad 0 \le \text{所有数值} \le 10^9$$

样例输入 #1
3
2 5 8
2
10
5
样例输出 #1
8
5
样例输入 #2
5
1 4 7 10 13
4
0
8
13
100
样例输出 #2
1
7
13
13