В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
mishutka144qwerty
mishutka144qwerty
01.04.2022 09:22 •  Информатика

На с++ реализуйте алгоритм бинарного поиска. входные данные в первой строке входных данных содержатся натуральные числа 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

Ответ:
Мэрия777
Мэрия777
08.10.2020 06:28
//g++  5.4.0

#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;
    }
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?