Олимпиадный тренинг

Задача . Две ячейки: почему поиск застрял?


Задача

Темы:

Программа ищет число x. При успехе нужно вывести его номер с единицы, при отсутствии — 0. Обе границы входят в поиск.

a = [2, 5]
x = 5
l = 0
r = len(a) - 1
ans = 0

while l <= r:
    mid = (l + r) // 2
    if a[mid] == x:
        ans = mid + 1
        break
    elif a[mid] < x:
        l = mid
    else:
        r = mid - 1

print(ans)

Программа застревает на двух ячейках. Выберите правильную замену одной строки. Остальной код изменять не нужно.


Комментарий учителя