刘宇帆 • 18天前
#include<bits/stdc++.h>
using namespace std;
int mi,a[100005],n,b,p;
int m(int x,int y,int z){
for(int i=0;i<n;i++){
mi=(x+y)/2;
if(a[mi]>z){
y=mi-1;
}else if(a[mi]<z){
x=mi+1;
}else{
if(a[mi-1]==a[mi]){
y=mi-1;.
continue;
}
return mi+1;
}
}
return -1;
}
int main() {
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>b;
int l=0,r=n-1;
for(int i=0;i<b;i++){
cin>>p;
cout<<m(l,r,p)<<" ";
}
}
评论: