代码如下
#include <bits/stdc++.h>
using namespace std;
int n,m;
int ef(int a[],int x){
int l=0,r=m-1,mid=(l+r)/2;
while(l<r){
int mid=(l+r)/2;
if(a[mid]==x)
return mid;
else if(a[mid]<x){
l=mid+1;
}
else if(a[mid]>x)
r=mid;
}
return -1;
}
int main(){
cin>>n>>m;
int a1[n],a2[m];
for(int i=0;i<n;i++){
cin>>a1[i];
}
for(int i=0;i<m;i++){
cin>>a2[i];
}
for(int i=0;i<m;i++){
int x=ef(a1,a2[i]);
if(x==-1)
cout<<-1<<" ";
else{
while(a1[x]==a2[i])
x--;
cout<<x+2<<" ";
}
}
return 0;
}