求教,关注
查看原帖
求教,关注
1541428
haocx楼主2025/2/7 15:20

答案输出:1 3 -1

#include<cstdio>
using namespace std;
long long int a[1000010],m,n,q;
int find(int x){
	int l=1,r=n;
	while(l<=r){
		int mid=(l+r)/2;
		if(a[mid]==x) return mid;
		else if(a[mid]>x)r=mid-1;
		else l=mid+1; 
	}
	return -1;	
} 
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	for(int i=0;i<m;++i){
		scanf("%d",&q);
		printf("%d ",find(q));
	}
	return 0;
}

2025/2/7 15:20
加载中...