Пусть S — последовательность из
Входные данные.
Дано два входных файла (файл А и файл B), каждый из которых в первой строке содержит
Ответ:
Приведём решение на языке Python.
f = open('2772.txt')
n = int(f.readline())
a = [int(x) for x in f]
sp_i = [-10**10]*n
curMx = -10**10
for i in range(n):
curMx = max(curMx, a[i])
sp_i[i] = curMx
sp_k = [-10**10]*n
curMx = -10 ** 10
for k in range(n-1, -1, -1):
curMx = max(curMx, a[k])
sp_k[k] = curMx
res = 0
for j in range(1, n-1):
if a[j] < sp_i[j-1] and a[j] < sp_k[j+1]:
res = max(res, (sp_i[j-1] - a[j]) + (sp_k[j+1] - a[j]))
print(res)
Ответ: 4000 3996.
Приведём решение Юрия Красильникова на языке Python.
a = [int(s) for s in open('27.txt')][1:]
left = [a[0]]
for x in a[1:]: left.append(max(left[-1],x))
right = [a[-1]]
for x in a[-2::-1]: right.append(max(right[-1],x))
right = right[::-1]
r = [left[i-1] + right[i+1] - 2*a[i] for i in range(1,len(a) - 1) if left[i-1] > a[i] and right[i+1] > a[i]]
print(max(r))

