题目:P2249 【深基13.例1】查找
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000000],x,t;
int cz(int t,int w,int x){
while(t<=w){
int mid=(t+w)/2;
if(a[mid]>=x){
w=mid-1;
}else{
t=mid+1;
}
}
if(t>n) return -1;
if(a[t]!=x) return -1;
return t;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++){
scanf("%d",&x);
printf("%d ",cz(1,n,x));
}
return 0;
}
大佬们帮我康康吧,Thank you!