На вход подается число , а затем последовательность из
натуральных чисел. Напишите программу, которая находит максимальное произведение двух элементов последовательности, стоящих на расстоянии не меньше 4, то есть
, где
— номера элементов последовательности.
В первой строке файла “.txt” находится число
, в следующих
строках даны элементы последовательности. Гарантируется, что искомое произведение получить можно.
В ответ укажите через пробел значение для файла А и значение для файла Б
Переборное решение:
f = open(’4_A.txt’)
n = int(f.readline())
a = [int(i) for i in f]
mx = -10 ** 10
for i in range(n):
for j in range(i + 1, n):
if j - i >= 4:
mx = max(mx, a[i] * a[j])
print(mx)
Эффективное решение:
f = open(’4_B.txt’)
n = int(f.readline())
a = [int(i) for i in f]
ans = -10 ** 10
s = 4 # Расстояние между элементами
# Максимальное найденное на данный момент число
mx_prev = -10 ** 10
for i in range(s, n):
mx_prev = max(mx_prev, a[i - s])
ans = max(ans, a[i] * mx_prev)
print(ans)