Просто прогоняем бинарный поиск дважды, сначала ищем ближайшее число, не большее нужного, потом не меньшее. Для того, чтобы такие числа были, можно дописать в массив очень большое число и очень маленькое. Затем выбираем из этих двух найденных чисел то, что будет ближе.
Пример реализации:
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))
Поделитесь своими знаниями, ответьте на вопрос:
Изобразите в декартовой прямоугольной системе координат область, в которой и только в которой истинны следующие логические выражения: а)(x> =-1) и (x< =1) и (y> =-1) и (y< =1) б)(y> =x) и (y> =-x) и (y< =1)
Влага - основной источник жизни для растений. Вода растворяет питательные вещества, образуя почвенный раствор, впитываемый корнями. Недостаток влаги приводит к преждевременному старению и сокращению продуктивного периода жизни. Растения хуже плодоносят, легче подвергаются болезням, становятся не переносить стойкие морозы. Избыток влаги не менее вреден. В переувлажненной почве нарушается газообмен, что приводит к загниванию и отмиранию корневой системы. Помимо этого возрастает опасность заражения листьев и плодов паршой и грибковыми заболеваниями.
Поскольку на любом приусадебном участке можно увидеть ягодники, плодовые кусты и деревья, поговорим об их правильном поливе - залоге обильного и богатого урожая.
Необходимость в поливе напрямую зависит от погоды, состояния почвы и потребности самих растений. Оптимальная влажность почвы для плодового сада - 65-80%. На разных этапах развития садовые культуры требуют различного количества воды.
Ранней весной достаточно влаги тающего снега. В конце мая и июне, в период вегетации, интенсивного роста, цветения и закладки почек плодово-ягодные растения расходуют большое количество воды. Важно позаботиться об обильном поливе и следить за тем, чтобы в это время почва вокруг растений не пересыхала. В дальнейшем потребность в воде заметно снижается и ограничивается дождевой влагой. Однако в случае засушливого лета в сентябре проводят дополнительный полив, так как в это время происходит активное накопление питательных веществ, обеспечивающих зимостойкость.
Все плодово-ягодные культуры поливают ранним утром или в вечерние часы, до захода солнца. В это время испарение влаги из почвы минимально. Днем полив допустим при пасмурной погоде.