На с++ Реализуйте алгоритм бинарного поиска. Входные данные В первой строке входных данных содержатся натуральные числа N и K (0NK100000). Во второй строке задаются N элементов первого массива, отсортированного по возрастанию, а в третьей строке – K элементов второго массива. Элементы обоих массивов - целые числа, каждое из которых по модулю не превосходит 109 Выходные данные Требуется для каждого из K чисел вывести в отдельную строку "YES", если это число встречается в первом массиве, и "NO" в противном случае. Примеры входные данные 10 5 1 2 3 4 5 6 7 8 9 10 -2 0 4 9 12 выходные данные NO NO YES YES NO
#include <vector>
using namespace std;
bool binarySearch(vector<int>& arr, int target) {
int left = 0;
int right = arr.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return true;
}
else if (arr[mid] < target) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return false;
}
int main() {
int N, K;
cin >> N >> K;
vector<int> first(N);
vector<int> second(K);
for (int i = 0; i < N; i++) {
cin >> first[i];
}
for (int i = 0; i < K; i++) {
cin >> second[i];
}
for (int i = 0; i < K; i++) {
if (binarySearch(first, second[i])) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}