问题标题: 送豆(做完了)酷町堂:2784 重合

0
0
已解决
潘登
潘登
高级天翼
高级天翼

知识点:二分查找

现有问题:不知道

现有思路:先输入,然后排序,再查找,最后输出

错误代码:

#include<bits/stdc++.h>
using namespace std;
int erf(int a[], int k, int l, int r) { 
    int left = l, right = r, mid; 
    while(left<right){
	mid = left+(right-left)/2; 
	if(a[mid]<k)
	    left = mid+1;
	else
	    right = mid;
    }
    if(a[right]==k) return k;
    return 0;
}
int a[100001],b[100001],n,m,t[100001],c[100001]; 
int main() {
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		c[i]=a[i];
	}
	for(int i=1;i<=m;i++){
		cin>>b[i];
	}
	sort(a+1,a+1+n);
	sort(b+1,b+1+n);
	for(int i=1;i<=n;i++){
		if(erf(b,a[i],1,n)!=0)t[i]=erf(b,a[i],1,n);	
	}
	for(int i=1;i<=n;i++){
		if(erf(t,c[i],1,n)!=0)cout<<erf(t,c[i],1,n)<<' ';
	}
	return 0;
}

求解

@酷町扫地僧 申请精品贴

潘登在2022-01-27 21:03:43追加了内容

1


0
我要回答