编程题
### 问题描述 小然有一个长度为 $N$ 的整数数组 $A$。 数组中索引 $i$ 的排名定义为 $L+1$,其中 $L$ 是数组中大于 $A_i$ 的元素的数量。 现在,小然有 $Q$ 个查询,每个查询包含两个整数 $K$ 和 $R$。他的任务是找到最小的整数 $X$,满足如果从子数组 $A[1, K-1]$ 和子数组 $A[K+1, N]$ 中移除至多 $X$ 个元素,原数组中索引为 $K$ 的元素的排名就小于等于 $R$。 注意: - $A[P, Q]$ 表示的子数组为 $[A_P, A_{P+1}, ..., A_{Q-1}, A_Q]$。 - 所有的查询都是相互独立的。 ### 输入格式 第一行输入一个整数 $T$,表示测试用例的数量。 每个测试用例包含多行: - 第一行输入两个整数 $N$ 和 $Q$,表示数组的长度和查询的数量。 - 第二行输入 $N$ 个整数,分别是 $A_1$,$A_2$,...,$A_N$,表示数组 $A$。 - 接下来 $Q$ 行,每行输入两个整数 $K$ 和 $R$,表示一个查询。 ### 输出格式 对于每个查询,输出一行,表示为了让原数组中索引为 $K$ 的元素的排名小于等于 $R$,需要移除的元素的最小数量。 ### 样例输入 ```markdown 1 4 5 2 1 3 4 1 1 1 2 2 1 2 2 3 2 ``` ### 样例输出 ```markdown 2 1 2 1 0 ``` ### 说明 样例中的第一个查询:我们可以从子数组 $A[2, 4]$ 中移除索引为 $3$ 和 $4$ 的元素。此时,数组变为 $[2, 1]$,原数组中索引为 $1$ 的元素在现在的数组中的排名为 $1$。 样例中的第二个查询:我们可以从子数组 $A[2, 4]$ 中移除索引为 $4$ 的元素。此时,数组变为 $[2, 1, 3]$,原数组中索引为 $1$ 的元素在现在的数组中的排名为 $2$。 样例中的第五个查询:原数组中索引为 $3$ 的元素在现在的数组中的排名就等于 $2$,因此我们不需要移除任何元素。 ### 评测数据范围 $1 \leq T \leq 10^4$。 $1 \leq N, Q \leq 10^5$。 $1 \leq K, R \leq N$。 $-10^9 \leq A_i \leq 10^9$。 所有测试用例中 $N$ 和 $Q$ 的和不超过 $2 \times 10^5$。
查看答案
赣ICP备20007335号-2