2078: 【入门】起止位置

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:63 解决:30

题目描述

有n位同学按照年龄从小到大排好队。

王老师想要查询,年龄为x的同学,在队伍中首次出现的位置和最后一次出现的位置;如果队伍中不存在年龄为x的同学,请输出-1。

由于人数太多,一个一个数,太慢啦,请你编程求解。

请注意:本题中王老师查询年龄x出现的起止位置,并不是查询了1次,而是查询了q次。

比如:

假设有6位同学的年龄为:1 2 2 2 3 3,王老师查询了4个年龄,分别是2 1 3 8,那么:

年龄为2的同学首次和最后一次出现的位置分别是:2 4;

年龄为1的同学首次和最后一次出现的位置分别是:1 1;

年龄为3的同学首次和最后一次出现的位置分别是:5 6;

年龄为8的同学首次和最后一次出现的位置分别是:-1 -1;

输入

第一行包含整数n和q,表示队伍中的总人数和询问个数。

第二行包含n个整数(均在1~10000范围内),表示队伍中每个人的年龄。

接下来q行,每行包含一个整数x,表示一次询问的值。

输出

共q行,每行包含两个整数,表示所求年龄在队伍中的起始位置和终止位置。

如果数组中不存在该元素,则返回"-1 -1"。

数据范围
1≤n≤100000
1≤q≤10000
1≤x≤10000

样例输入 复制

6 3
1 2 2 2 3 3
2
1
8

样例输出 复制

2 4
1 1
-1 -1