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

Задача . Нашли совпадение — но самое ли оно левое?


Задача

Темы:

Нужно вывести номер самого левого элемента, равного x, или 0, если такого элемента нет. Номера в ответе начинаются с единицы.

a = [7, 7, 7]
x = 7
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 + 1
    else:
        r = mid - 1

print(ans)

Сейчас программа останавливается при первом найденном совпадении. Замените только break, чтобы она искала самое левое совпадение в любом массиве, отсортированном по неубыванию. Остальные строки оставьте без изменений.


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