80分求助
查看原帖
80分求助
1035872
__Giraffe__楼主2024/7/11 16:07
#include<bits/stdc++.h>
using namespace std;
int a[1000000+10];
int b[1000000+10];
bool find(int begin,int end,int v){  
	if(begin>=end) return 0;
	long long mid=(begin+end)/2;
	if(b[mid]==v) return 1;
	else if(b[mid]<v) return find(mid+1,end,v);
	else if(b[mid]>v) return find(begin,mid,v);
}
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m;i++){
		cin>>b[i];
	}
	sort(b+1,b+m+1);
	for(int i=1;i<=n;i++){
		if(find(1,m,a[i])) cout<<a[i]<<" ";
	}
	return 0;
	
}

2024/7/11 16:07
加载中...