На вход подается натуральное число затем
натуральных чисел в порядке неубывания. Определите, сколько раз встречается число
. В качестве ответа укажите количество чисел
в последовательности.
def binary_search_recursive(arr, elem, start=0, end=None):
if end is None:
end = len(arr) - 1
if start > end:
return False
mid = (start + end) // 2
if elem == arr[mid]:
return mid
if elem < arr[mid]:
return binary_search_recursive(arr, elem, start, mid-1)
return binary_search_recursive(arr, elem, mid+1, end)
def count_nums(arr, x):
ind = binary_search_recursive(arr, x)
if ind == -1:
return 0
count = 1
left = ind - 1
while left >= 0 and arr[left] == x:
count += 1
left -= 1
right = ind + 1
while right < len(arr) and arr[right] == x:
count += 1
right += 1
return count
f = open(’test.txt’)
n = int(f.readline())
a = [int(f.readline()) for i in range(n)]
print(count_nums(a, 722))
Ответ: 128