编程题
### 问题描述 在蓝桥小学即将举行篮球赛,所有的男生站成一排,编号从 $1$ 到 $N$。每个男生都有自己的身高。然而,小桥来晚了,于是他随便找了个位置站了下来。他想知道站在他左边和右边的第一个比他高的人分别是谁。 举例来说,假设在小桥之前站队的男生身高分别是 {$8, 3, 5, 4, 7, 4$},而小桥的身高是 $5$。如果他站在 $2$ 号和 $3$ 号之间,那么他左边第一个比他高的人是 $1$ 号,右边第一个比他高的人是 $5$ 号。 需要注意的是,小桥插队并不会影响其他男生的编号。 由于有很多平行宇宙,所以会有多次询问。 ### 输入格式 第一行输入两个整数 $N, Q$,$N$ 代表排队的人数, $Q$ 代表询问的次数。 第二行输入 $N$ 个整数,{$h_1,h_2......h_n$} 代表 $N$ 个人排队的身高。 接下来 $Q$ 行,每行两个整数 $p_i, H_i$ ,代表这次询问,小桥站在了 $p_i$ 右边,也就是 $p_i$ 与 $p_{i} + 1$ 之间,小桥的身高为 $H_i$。 ### 输出格式 对于每个询问,输出两个整数 $a_i,b_i$ ,代表左边与右边第一个比小桥高的人的编号。 ### 样例输入 ``` 8 3 8 5 3 1 5 7 3 8 3 7 4 1 5 6 ``` ### 样例输出 ``` 1 8 3 5 1 6 ``` ### 说明 $ 3\le N,Q \le 10^5$, $1 \le H_i, h_i\le 10^9,1 \le p_i \lt N$ 保证每个询问必然有解
查看答案
赣ICP备20007335号-2