Задача к ЕГЭ по информатике на тему «прочие прототипы» №12

На вход подается натуральное число N,  затем N  натуральных чисел в порядке неубывания. Определите, сколько раз встречается число 722  . В качестве ответа укажите количество чисел 722  в последовательности.

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
Оцените статью
Я решу все!