这个人只会用二分,10pts求调
查看原帖
这个人只会用二分,10pts求调
1053122
shy_lihui楼主2024/5/12 08:49
//#include<bits/stdc++.h>
#include<iostream>
#include<math.h>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<stack>
#include<queue> 
#include<stdio.h>

using namespace std;
const int N=2e8+5;
int n,m,a[N];
int x[N];
bool find(int s[],int n,int x)
{
	int l,r,mid;
	l=1;
	r=n;
	while(l+1<r)
	{
		mid=l+r>>1;
		if(x>s[mid])
		{
			l=mid+1;
		}
		if(x<s[mid])
		{
			r=mid-1;
		}
		if(s[mid]==x)
		{
			return mid;
		}
	}
	return 0;
	
}
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[i]);
	}
	sort(a+1,a+n+1);
	for(int i=1;i<=m;i++)
	{
		if(find(a,n,x[i])!=0)
		{
			cout<<x[i]<<' ';
		}
	}
	return 0;
}
2024/5/12 08:49
加载中...