#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int n,m;
long long a[N],b[N];
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= m; i++){
cin >> b[i];
}
sort(a+1,a+n+1);
sort(b+1,b+m+1);
for(int i = 1; i <= n; i++){
int l = 1,r = m;
while(l<=r){
int mid = (l+r)/2;
if(b[mid]==a[i]){
cout << a[i] << " ";
break;
}
else if(b[mid]<a[i]){
l = mid+1;
} else {
r = mid-1;
}
}
}
return 0;
}
输入:
4 3
2 15 6 8
8 9 2
输出:
2 8
结果:20
#include <iostream>
#include <algorithm>
using namespace std;
int n,t,m,mid;
int a[100005],b[100005];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=m;i++)
cin>>b[i];
int k=1;
sort(b+1,b+1+m);
for(int i=1;i<=n;i++)
{
int l=1;
int h=m;
while(l<=h)
{
mid=(l+h)/2;
if(b[mid]==a[i]) {
cout<<a[i]<<' ';
break;
}
else if(b[mid]>a[i])
h=mid-1;
else if(b[mid]<a[i])
l=mid+1;
else break;
}
}
return 0;
}
输入:
4 3
2 15 6 8
8 9 2
输出:
2 8
结果:AC