Я хочу взять две строки подряд в качестве входных данных, где первая строка - это мой массив, а второй массив - это элементы, которые я хочу искать с помощью двоичного поиска. Однако после ввода обеих строк он ожидает большего количества строк и работает не так, как ожидалось.
def my_bin(a, key):
l = 0
h = len(a) - 1
loc = -1
while(l < h):
m = l + (h - l) // 2
if (a[m] == key):
loc = m
elif (key < a[m]):
h = m
elif(key > a[m]):
l = m + 1
return loc
if __name__ == '__main__':
a = [int(x) for x in input().split()]
ktf = [int(x) for x in input().split()]
ktf = ktf[1:]
a = sorted(a)
for ele in ktf:
t = my_bin(a, ele)
print(t, end=" ")
пример: строка 1: 7 8 6 546 878 98 34 543
строка 2: 4 6 7 8 786
выход: 0 1 2 -1
Первая строка - это массив для сортировки и поиска. Вторая строка имеет первое значение в виде числа значений для поиска, которое здесь равно «4», а затем значения для поиска в указанном выше массиве.