B2167 查找最后一个出现的位置
题目描述
输入一个长度为 $n$ 的**非递减**正整数数列 $a_1,a_2,\dots,a_{n}$,然后进行 $m$ 次询问。对于每次询问,给出一个整数 $q$,要求输出这个数字在序列中**最后一次**出现的下标。如果序列中不包含该数字,请输出 $-1$ 。
注意:下标从 1 开始。
输入格式
第一行,包含两个正整数 $n$ 和 $m$,分别表示数列的长度和询问的次数。
第二行,包含 $n$ 个正整数 $a_1, a_2, \ldots, a_n$。
接下来 $m$ 行,每行包含一个正整数 $q$,表示一次询问。
输出格式
输出共 $m$ 行。
对于每次询问,如果数字 $q$ 存在于数列中,则输出它在数列中最后一次出现的下标;如果不存在,则输出 $-1$。
说明/提示
### 样例解释
数列为 $[2, 3, 5, 5, 5, 8, 9, 9]$。
1. 询问 $5$:数字 $5$ 最后一次出现在第 $5$ 个位置。
2. 询问 $2$:数字 $2$ 最后一次出现在第 $1$ 个位置。
3. 询问 $9$:数字 $9$ 最后一次出现在第 $8$ 个位置。
4. 询问 $6$:数列中不存在 $6$。
5. 询问 $8$:数字 $8$ 最后一次出现在第 $6$ 个位置。
### 数据范围
对于所有测试点,保证:
* $1 \leq n, m \leq 10^6$
* $1 \leq a_i, q \leq 10^9$
* 对于 $1 \leq i < n$,保证 $a_i \leq a_{i+1}$。
本题输入输出量较大,请使用较快的 IO 方式。