На с++ реализуйте алгоритм бинарного поиска. входные данные в первой строке входных данных содержатся натуральные числа 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 <iostream>
#include <vector>
using namespace std;
template<class Iter, class T>
bool bin_s(const Iter begin, const Iter end, const T& val)
{
Iter i = std::lower_bound(begin, end, val);
if (i != end && !(val < *i))
return true;
else
return false;
}
int main()
{
size_t N, M;
cin >> N >> M;
vector<int> v1(N);
vector<int> v2(M);
for (size_t i = 0; i < N; ++i)
cin >> v1[i];
for (size_t i = 0; i < M; ++i)
{
cin >> v2[i];
if ( bin_s(v1.begin(), v1.end(), v2[i]) )
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}