#include <iostream>
using namespace std;
int a,b,f[10000100],x,l,r,t;
int main()
{
cin>>a>>b;
for(int i=1;i<=a;i++)cin>>f[i];
for(int i=1;i<=b;i++){
cin>>x;
l=1;r=a;
while(l<r){
t=(l+r)/2;
if(f[t]>=x)r=t;
if(f[t]<x)l=t;
if(f[l]==x && f[l-1]!=x){cout<<l<<" ";break;}
if(f[r]==x && f[r-1]!=x){cout<<r<<" ";break;}
if(l==r-1){cout<<-1<<" ";break;}
}
if(l==r){
if(x==f[1])cout<<1;
else cout<<-1;
}
}
return 0;
}
自己捏了几个数据,没问题,想不通了,求助dalao