我测试都过了,也打了空格,为什么wa?
#include <bits/stdc++.h>
using namespace std;
int n,m,a[1000005],i,qqq;
int main(){
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>a[i];
}
int i,l=1,r=n,ans=0,k;
int mid=(l+r)/2;
for(i=1;i<=m;i++){
qqq=0;
cin>>k;
if(n==1){
if(k==a[1]){
cout<<1<<" ";
qqq=1;
}
}
while(l<=r){
if(k==a[mid]){
ans=mid;
qqq=1;
while(a[mid]!=k){
if(a[mid-1]==k){
mid-=1;
ans=mid;
}
}
cout<<ans<<" ";
break;
}
else if(k>a[mid]){
l=mid+1;
mid=(l+r)/2;
}
else if(k<a[mid]){
r=mid-1;
mid=(l+r)/2;
}
}
if(qqq==0) cout<<-1<<" ";
}
return 0;
}