```cpp
#include <bits/stdc++.h>
using namespace std;
int n, m;
int a[100010], b[100010];
int find(int x) {
int l = 1, r = m, ans = -1;
while(l <= r) {
int mid = (l + r) / 2;
if (b[mid] == x) {
return true;
} else if(b[mid] > x)
r = mid - 1;
else
l = mid + 1;
}
return false;
}
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(b + 1, b + m + 1);
for(int i = 1; i <= n; i++)
if(find(a[i]))
cout << a[i] << ' ';
cout << endl;
return 0;
}
```
@[______QAQ______](/user/1092781) 先看看,看不懂的私信
by yeqiwei @ 2023-10-17 18:37:34
@[______QAQ______](/user/1092781)
要按在科技创新奖获奖名单中的先后次序输出
by Wanderer_01 @ 2023-10-17 18:39:28
```cpp
#include<bits/stdc++.h>
using namespace std;
int read() {
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9') {
if(ch=='-') f=-1;
ch=getchar();
}
while('0'<=ch&&ch<='9') {
x=(x<<1)+(x<<3)+(ch&15);
ch=getchar();
}
return x*f;
}
const int N=1e5+5;
int n,m;
map<int,int> mp;
int a[N];
signed main(){
n=read(),m=read();
for(int i=1; i<=n; i++) a[i]=read();
for(int i=1; i<=m; i++) mp[read()]=1;
for(int i=1; i<=n; i++)
if(mp[a[i]]) printf("%d ",a[i]);
}
```
偷懒也可以用 map
by Wanderer_01 @ 2023-10-17 18:42:23
感谢大佬们(鞠躬!)
by _____QWQ_____ @ 2023-10-17 18:43:58