#include<bits/stdc++.h>
using namespace std;
long long a[100001];
int ss(int left,int right,int ans){
int middle=(left+right)/2;
if(left==right&&a[middle]!=ans)
return -1;
if(ans==a[middle]){
while(a[middle-1]==ans)
middle--;
return middle;
}
else if(ans<a[middle])
return ss(left,middle-1,ans);
else if(ans>a[middle])
return ss(middle+1,right,ans);
}
int main(){
int n,m,q;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>q;
cout<<ss(1,n,q)<<" ";
}
return 0;
}
本地跑没啥问题,自己实在是想不通了,还请大佬指教
提前orz