#include<iostream>
using namespace std;
int a[100001];
int n,m;
int x;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
while(m--)
{
scanf("%d",&x);
int L=1,R=n,mid,f=0;
while(L<=R)
{
mid=(L+R)/2;
if(a[mid]>=x)
R=mid-1;
else if(a[mid]<x)
L=mid+1;
}
if(a[L]==x)
printf("%d ",L);
else
printf("-1 ");
}
return 0;
}
测试数据
在别的OJ上过了
但在洛谷不知道为什么过不了