CCCPaste

Приближенный двоичный поиск

В этой задаче нам нужно для каждого числа из второго массива найти число из первого массива наиболее близкое по значению
Как один из вариантов решения задачи, мы можем для b[i] одним бинарным поиском найти ближайшее большее или равное из a, другим бинарным поиском найти ближайшее меньшее или равное из a, и сравнить их, взять тот, который ближе

Пример кода на python:
n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
for e in b:
    l1 = -1
    r1 = n
    while r1 - l1 > 1:
        m = (r1 + l1) // 2
        if a[m] >= e:
            r1 = m
        else:
            l1 = m
    l2 = -1
    r2 = n
    while r2 - l2 > 1:
        m = (r2 + l2) // 2
        if a[m] <= e:
            l2 = m
        else:
            r2 = m
    if r1 == n:
        print(a[l2])
    elif l2 == -1:
        print(a[r1])
    else:
        if e - a[l2] <= a[r1] - e:
            print(a[l2])
        else:
            print(a[r1])