在听说兔子成了最好的警官后,疯狂动物城的其他动物都跃跃欲试来警局报名,也想成为一个除暴安良的伟大警官。来报名的有蜜獾、蜗牛、蚂蚁、长颈鹿……对于群众们的热情,警长很是无奈。为了维持秩序,牛局长让所有来报名的动物按照身高从低往高排队(身高全部取整数)。现在他想知道几个身高数据正好是某值的动物,在队伍中的起止位置,于是他把任务交给了猎豹警官。由于人数太多,一个个数实在太慢了,现在请你帮猎豹警官编程求解(如果队伍中没有此身高的,那么位置记为-1)。
比如队伍中有6个动物,他们的身高为:1 3 3 3 8 8,牛局长让猎豹警官统计了4个身高值,分别是3 1 8 9,那么:
身高为3的动物首次和最后一次出现的位置分别是:2 4;
身高为1的动物首次和最后一次出现的位置分别是:1 1;
身高为8的动物首次和最后一次出现的位置分别是:5 6;
身高为9的动物首次和最后一次出现的位置分别是:-1 -1;
输入格式
第一行两个整数n、m,分别表示队伍人数、局长要统计的身高数目;
第二行n个整数,代表报名队伍中各动物的身高,从小到大;
第三行是m个整数,代表每一个要统计的身高值x。
输出格式
总共m行,每行两个整数,表示身高一致的动物所在队伍的起止位置
输入样例
10 4
1 3 7 11 11 13 13 13 19 23
3 7 11 13
输出样例
2 2
3 3
4 5
6 8
约定:
1<=n<=100000;
1<=m<=10000;
1<=x<=10000;
我的代码
```c++
#include<bits/stdc++.h>
using namespace std;
int n,m,k[10005];
int h[100005];
int x[10005],y[10005];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%d",&h[i]);
}
for(int i=1;i<=m;i++){
scanf("%d",&k[i]);
}
for(int i=1;i<=m;i++){
bool flag=0;
for(int j=1;j<=n;j++){
if(flag==0&&k[i]==h[j]){
x[i]=j;
flag=1;
}
if(flag==1&&k[i]!=h[j]){
y[i]=j-1;
break;
}
}
if(flag==0){
x[i]=-1;
y[i]=-1;
}
}
for(int i=1;i<=m;i++){
printf("%d",x[i]);
printf(" ");
printf("%d\n",y[i]);
}
}
```