不知道有什么错,样例没过
查看原帖
不知道有什么错,样例没过
750859
fth114514楼主2024/1/10 21:03
#include<bits/stdc++.h>
using namespace std;
int a[1000100],b[100010];
int main(){
	int n,m,i,j,l,r,mid;
	bool h;
	scanf("%d%d",&n,&m);
	l=1;
	r=n;
	for(i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(i=1;i<=m;i++){
		scanf("%d",&b[i]);
	}
	for(i=1;i<=m;i++){
		h=false;		
		while(l<=r){
			mid=(l+r)/2;	
			if(b[i]<a[mid]){
				r=mid-1;	
			}else if(b[i]>a[mid]){
				l=mid+1;
			}else if(b[i]==a[mid]){
				printf("%d ",mid);
				h=true;
				l=r+1;
			}
		}
		if(h==false){
			printf("%d ",-1);
		}
	}
	return 0;
}
2024/1/10 21:03
加载中...