‹ 上一题 下一题 ›

g5-08258. 前驱查询 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLset

题目描述

先把 个非负整数(可能有重复)放进集合,再回答 次询问:每次给一个整数 ,输出集合里严格小于 的最大元素(即 的前驱);这样的元素不存在时输出 。

提示:s.lower_bound(x) 返回第一个大于等于 的迭代器——它前一个位置(用 prev 退一步)才指向严格小于 的最大元素;若 lower_bound(x) 已经是 s.begin(),说明没有元素比 小。

输入格式

第一行一个整数 ()。

第二行 个整数 (),可能重复。

第三行一个整数 ()。

接下来 行,每行一个整数 ()。

输出格式

共 行,每行一个整数:该次询问的前驱,不存在输出 。

样例

输入:

5
2 4 7 7 10
4
7
3
10
1

输出:

4
2
7
-1

比 7 小的最大元素是 4——7 自己虽然在集合里也不能算;比 10 小的最大是 7;比 1 小的一个都没有,输出 -1。

数据范围

,。集合里的数都非负,所以 不会和任何真实元素混淆。注意 恰好在集合里的询问:前驱必须严格小于 ,不能把 自己报出来。

输入
输出

            
答案