Minmax25. Дано целое число N (> 1) и набор из N чисел. Найти номера двух соседних чисел из данного набора, произведение которых является минимальным, и вывести вначале меньший, а затем больший номер.

Решение на Python 3:

import random

N = random.randrange(3,15)
print("N = ",N)

L = [random.randint(1, 15) for i in range(N)]
print("Initial:",L)

mn = L[0] * L[1]
mn_idx = 0
i = 0
for i_curr, i_next in zip(L,L[1:]):
x = i_curr * i_next
if x < mn:
mn = x
mn_idx = i
#print(i_curr,i_next)
i += 1
print("\nMinimum of pairs:",mn)
print("Indices:",mn_idx,mn_idx+1)

mn = L[0] * L[1]
mn_idx = 0
for i in range(1,len(L)-1):
x = L[i] * L[i+1]
if x < mn:
mn = x
mn_idx = i
#print(L[i],L[i+1])
print("\nMinimum of pairs:",mn)
print("Indices:",mn_idx,mn_idx+1)