描述
给定一个由 n 个整数组成的序列 S 和一个由不同的 q 个整数组成的序列 T。编写一个程序,输出 C,即既在序列 T 中也在集合 S 中的整数个数。
输入
在第一行中给出了 n。 在第二行中,给出了 n 个整数。 在第三行中给出了 q。 然后,在第四行,给出 q 个整数。
输出
在一行中打印 C。
约束
S中的元素按升序排列
n ≤ 100000
q ≤ 50000
0 ≤ S 中的一个元素 ≤109
0 ≤ T 中的一个元素 ≤109
输入样例
5 1 2 3 4 5 3 3 4 1
输出样例
3
提交答案
C(gcc) C++ C++14 Python2 Python3 Java C(Clang) C++14(Clang) Go
提交
1
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
std::vector<int> S(n);
for (int i = 0; i < n; ++i) {
std::cin >> S[i];
}
std::sort(S.begin(), S.end());
int q;
std::cin >> q;
std::vector<int> T(q);
for (int i = 0; i < q; ++i) {
std::cin >> T[i];
}
int C = 0;
for (int i = 0; i < q; ++i) {
int x = T[i];
if (std::binary_search(S.begin(), S.end(), x)) {
++C;
}
}
std::cout << C << std::endl;
return 0;
}