题目背景
disangan233 喜欢数数,于是他想让你帮他回答一个问题。
题目描述
传智专修学院提供 A,BA,B 两个课程,分别有 n,mn,m 个学生报名。报名 AA 的学生的编号为 a_nan,报名 BB 的学生的编号为 b_mbm,求有多少个学生同时报名了两个课程。
对于所有数据,n,m,a_i,b_i\leq 20n,m,ai,bi≤20,保证每个课程报名的学生编号不会重复。
输入格式
输入共 33 行。
第 11 行输入 22 个正整数 n,mn,m。
第 22 行输入 nn 个正整数 a_1\ldots a_na1…an,表示报名课程 AA 的学生编号。
第 33 行输入 mm 个正整数 b_1\ldots b_mb1…bm,表示报名课程 BB 的学生编号。
学生编号不保证从小到大排序。
输出格式
输出共 11 行 11 个整数,表示答案。
输入输出样例
输入 #1
5 5
1 2 3 4 5
1 3 4 5 6
输出 #1
4
#include <iostream>
#include<iomanip>
#include <math.h>
#include <vector>
#include <unordered_set>
using namespace std;
int main() {
int n, m;
int stu_a, stu_b;
int res = 0;
cin >> n >> m;
unordered_set<int> a, b;
while (n--) {
cin >> stu_a;
a.insert(stu_a);
}
while (m--) {
cin >> stu_b;
b.insert(stu_b);
}
for (auto && i = a.begin(); i != a.end(); ++i) {
//cout << " " << *i << endl;
if (b.count(*i)) res++;
}
cout << res;
return 0;
}