B4362 eqal_range

题目描述

给定一个数列 $a = [a_1, a_2, \dots, a_n]$,有 $q$ 次询问,每次询问给出一个整数 $x$,你要回答:序列 $a$ 里最小的比 $x$ 大的数是多少?$a$ 里最大的比 $x$ 小的数是多少?

输入格式

第一行是两个整数,表示序列长度 $n$ 和询问次数 $q$。 第二行有 $n$ 个整数表示 $a_1, a_2, \dots a_n$。 接下来 $q$ 行,每行一个整数 $x$ 表示查询的数字。

输出格式

对每次查询,输出两个整数 $u,v$,依次表示数列 $a$ 里最小的比 $x$ 大的数和最大的比 $x$ 小的数。 如果相应的数不存在,在对应位置输出 $-1$。

说明/提示

对全部的测试数据,保证 $1 \leq n,q \leq 10^6$,$1 \leq a_i, x \leq 10^9$。 **请注意大量数据读入对程序效率造成的影响**。