题目描述
先把 个非负整数(可能有重复)放进集合,再回答 次询问:每次给一个整数 ,输出集合里严格小于 的最大元素(即 的前驱);这样的元素不存在时输出 。
提示: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。
数据范围
,。集合里的数都非负,所以 不会和任何真实元素混淆。注意 恰好在集合里的询问:前驱必须严格小于 ,不能把 自己报出来。