用c++完成这道题:题目描述 给定一个 nn 个数的数组 aa,再给定 mm 次询问,每次询问一个整数 xx 在数组 aa 中是否存在,如果存在,输出 Y,不存在输出 N。 输入 第 11 行是一个整数 nn(5≤n≤10^55≤n≤10 5 ); 第 22 行有 nn 个整数,数与数之间用空格隔开; 第 33 行有一个整数mm(5≤m≤10^55≤m≤10 5 ); 第 44 行有 mm 个整数,数与数之间用空格隔开; 输出 输出 mm 次查询每次查询的结果(Y 或者 N),每次查询结果之间用空格隔开。
时间: 2024-03-14 17:45:28 浏览: 28
以下是C++代码实现:
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n, m;
cin >> n;
unordered_set<int> st;
for(int i = 0; i < n; i++) {
int x;
cin >> x;
st.insert(x);
}
cin >> m;
while(m--) {
int x;
cin >> x;
if(st.count(x)) cout << "Y ";
else cout << "N ";
}
return 0;
}
```
首先读入数组,用 `unordered_set` 存储,然后对每个询问进行判断,如果该元素出现在 `unordered_set` 中,输出 `Y`,否则输出 `N`。