#include <cstring> #include <iostream> #include <algorithm> #include <map> using namespace std; bool isExit(int arr[], int x) { int low = 0; int high = sizeof(arr) - 1; while (low <= high) { int mid = (low + high) / 2; if (arr[mid] == x) return true; else if (arr[mid] > x) high = mid - 1; else low = mid + 1;; } return false; } int main() { int n, m; int arr[100]; map<int, int> findNum; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; findNum[arr[i]] = i;//把数组的元素作为键,数组的下标作为值,插入到map中 } sort(arr, arr + n); int seArr[100]; while (scanf("%d", &m) != EOF) { for (int i = 0; i < m; i++) { scanf("%d", &seArr[i]); } for (int i = 0; i < m ; i++) { //如果没有在map中查找到seArr[i],则findNum.find()会返回map的尾后迭代器 if (findNum.find(seArr[i]) != findNum.end()) cout << "YES" << endl; else cout << "NO" << endl; } } } // 64 位输出请用 printf("%lld")