Array 42. Дано число R и массив размера N. Найти два соседних элемента массива, сумма которых наиболее близка к числу R, и вывести эти элементы в порядке возрастания их индексов (определение наиболее близких чисел дано в задании Array40).

Решение на Python 3

import random

N = random.randrange(2,21)
a = [random.randrange(1,100) for i in range(N)]
R = random.randrange(1,201)

print("N:",N)
print("Array:",a)
print("R:",R)

d_min = abs(R - (a[0] + a[1]))
i_min = 1
for i in range(2,N):
d_tmp = abs(R - (a[i-1] + a[i]))
if d_min > d_tmp :
d_min = d_tmp
i_min = i

print("Indices:", i_min-1,",",i_min)
print("Elements:", a[i_min-1],",",a[i_min])
print("Sum:", a[i_min-1] + a[i_min])
print("Diff:", d_min)