1807: 【作】【基础】同时出现的数
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:3
题目描述
Medusa同学拿到了2组数字,老师请你编程帮他找出,第2组数中的哪些数,在第1组数中出现了,从小到大输出所有满足条件的数。
比如:
第1组数有:8 7 9 8 2 6 3
第2组数有:9 6 8 3 3 2 10
那么应该输出:2 3 3 6 8 9
比如:
第1组数有:8 7 9 8 2 6 3
第2组数有:9 6 8 3 3 2 10
那么应该输出:2 3 3 6 8 9
输入
第一行两个整数n和m,分别代表2组数的数量
第二行n个正整数
第三行m个正整数
对于60%的数据1≤n,m≤1000,每个数<=2*10^9
对于100%的数据1≤n,m≤100000,每个数<=2*10^9
第二行n个正整数
第三行m个正整数
对于60%的数据1≤n,m≤1000,每个数<=2*10^9
对于100%的数据1≤n,m≤100000,每个数<=2*10^9
输出
按照要求输出满足条件的数,数与数之间用空格隔开
样例输入 复制
7 7
8 7 9 8 2 6 3
9 6 8 3 3 2 10
样例输出 复制
2 3 3 6 8 9
提示
#include <bits/stdc++.h> using namespace std; int n,m; int a[101000],b[101000]; 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+1+n); sort(b+1,b+1+m); for(int i=1; i<=m; i++) { int pos=lower_bound(a+1,a+n+1,b[i])-a-1; if (a[pos+1]==b[i]) cout<<b[i]<<" "; } }