Алексеевна
?>

ПАСКАЛЬ Напишите программу, которая подсчитывает количество элементов, равныхминимальному, в числовом массиве из 30 элементов.

Информатика

Ответы

Корнеплодович1930
Для групповых операций с файлами
используются
маски имен файлов. Маска представляет собой
последовательность букв, цифр и прочих допустимых в именах файлов символов, в
которых также могут встречаться следующие символы: символ «?» (вопросительный
знак) означает ровно один произвольный символ; символ «*» (звездочка) означает любую последовательность символов
произвольной длины, в том числе «*» может задавать и пустую последовательность.

Определите,
какое из указанных имен файлов удовлетворяет маске: ?el*.t*xt.

A) spell.txt

B) pencil.text

C) el.txt

D) welcome.text
Anna572

Просто прогоняем бинарный поиск дважды, сначала ищем ближайшее число, не большее нужного, потом не меньшее. Для того, чтобы такие числа были, можно дописать в массив очень большое число и очень маленькое. Затем выбираем из этих двух найденных чисел то, что будет ближе.

Пример реализации:

def bin_search(arr, target, kind="<="):

   assert kind in ["<=", ">="]

   if kind == "<=":

       comp = lambda a, b: a <= b

   else:

       comp = lambda a, b: a < b

   l = 0

   r = len(a) - 1

   while l < r - 1:

       m = (l + r) // 2

       if comp(a[m], target):

           l = m

       else:

           r = m

   if kind == "<=":

       return arr[l]

   else:

       return arr[r]

def nearest(arr, target):

   nearest_le = bin_search(arr, target, "<=")

   nearest_ge = bin_search(arr, target, ">=")

   if nearest_ge - target < target - nearest_le:

       return nearest_ge

   else:

       return nearest_le

_ = input()

a = [int(x) for x in input().split()]

a = [float("-Infinity")] + a + [float("+Infinity")]

for target in map(int, input().split()):

   print(nearest(a, target))

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

ПАСКАЛЬ Напишите программу, которая подсчитывает количество элементов, равныхминимальному, в числовом массиве из 30 элементов.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

anusha33325
Алена
arch5050
citioil15
Викторович
Lesnova_Kiseleva730
Vasilevna_Shabanova1502
mnn99
Иванович-Васильевна1153
vasiliiparshin7668
poch23420
Konstantinovna Ilyukhin1618
gorodof4292
Lapushkin1988
zvanton