Реализуйте алгоритм приближенного бинарного поиска

Формулировка задачи:

В первой строке входных данных содержатся числа N и K (0 9 .

Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.

В первой строке входных данных содержатся числа N и K. Во второй строке задаются N чисел первого массива, отсортированного по неубыванию, а в третьей строке – K чисел второго массива. Каждое число в обоих массивах по модулю не превосходит 2109.

Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.

Алгоритм такой.
1. Реализуй двоичный поиск с указанием места, куда вставить (см. Википедию).
2. Если вставить до первой позиции или за последнюю — return соотв. первое или последнее число.
3. В противном случае выяснить, какое ближе из (i−1)-го и i-го.

Дома проверю, где там ошибка в двоичном поиске, в нём любят ошибаться.

К тому же код у вас чисто олимпиадный, я бы отделил рабочую логику от генерации выходного файла.

Дома проверю, где там ошибка в двоичном поиске, в нём любят ошибаться.

Читайте также  Получение шлюза смс в xiaomi
Ссылка на основную публикацию
Adblock
detector