14 подписчиков
Решение А - достаточно тривиальное
file = open('27_A.txt', 'r')
n = int(file.readline())
s = [int(line.strip()) for line in file]
max_sum = -float('inf')
for i in range(n):
for j in range(i + 1, n):
for k in range(j + 1, n):
if s[i] > s[j] and s[k] > s[j]:
max_sum = max(max_sum, s[i] - s[j] + s[k] - s[j])
print(max_sum)
UPD: из комментов для Б -> сейчас постараюсь написать объяснение того, как это работает, чтобы можно было проще восстановить на экзамене
mi = r1 = sj = res = 0
for i in range(len(a) - 2):
mi = max(mi, a[i])
if mi - a[i + 1] > r1:
r1 = mi - a[i + 1]
sj = a[i + 1]
res = max(res, r1 + a[i + 2] - sj)
print(res)
Около минуты
7 июня 2024