#P5262. 二分查找-类型2(查找某个数字第一次出现的位置)

二分查找-类型2(查找某个数字第一次出现的位置)

题目描述

有一个有序且升序的数组,数组长度为 nn。现在有 qq 次查询,每次查询给定一个数字 xx,请你输出 xx 在数组中第一次出现的位置(下标从 11 开始)。如果数组中不存在 xx,则输出 1-1

输入格式

第一行包含两个整数 nnqq,分别表示数组长度和查询次数。

第二行包含 nn 个整数,表示数组中的元素,保证数组有序且升序。

接下来 qq 行,每行一个整数 xx,表示一次查询。

输出格式

对于每次查询,输出一行一个整数,表示 xx 在数组中第一次出现的位置(下标从 11 开始)。如果没有出现过,输出 1-1

5 3
1 2 2 3 5
2
-1
3
2
-1
4

样例解释

数组为 [1, 2, 2, 3, 5]

  • 查询 x=2x=2,第一次出现在下标 22,输出 22
  • 查询 x=1x=-1,不存在,输出 1-1
  • 查询 x=3x=3,第一次出现在下标 44,输出 44

数据范围与提示

  • 1n2×1051 \le n \le 2 \times 10^51q2×1051 \le q \le 2 \times 10^5
  • 数组中每个元素以及 xx 的范围均为 109-10^910910^9