Дана последовательность целых чисел. Расстояние между элементами последовательности — это разность их порядковых номеров. Например, если два элемента стоят в последовательности рядом, то расстояние между ними
Необходимо выбрать из последовательности три числа так, чтобы расстояние между какими-то двумя из них было равно 2K, а сумма всех трёх чисел была максимально возможной.
Запишите в ответе найденную сумму.
Входные данные.
Первая строка входного файла содержит целое число K — параметр для определения расстояния, вторая строка содержит
Пример входного файла.
Первая строка входного файла содержит целое
Вам даны два входных файла
Ответ:
Приведем решение на языке Python для файла A.
f = open('27-A.txt')
k = int(f.readline()) * 2
n = int(f.readline())
a = [int(i) for i in f]
maxi = -10**10
for i in range(n):
for j in range(i+1,n):
for t in range(j+1,n):
if j - i == k or t - j == k or t - i == k:
maxi = max(maxi, a[i] + a[j] + a[t])
print(maxi)
Приведем решение на языке Python для файлов А и B.
f = open('27-B.txt')
k = int(f.readline()) * 2
n = int(f.readline())
a = [int(i) for i in f]
maxi = -10**10
summa = [(a[i] + a[i + k], i, i + k) for i in range(n - k)]
summa.sort(reverse = True)
for i in range(n):
for j, t, p in summa:
if i != t and i != p:
maxi = max(maxi, a[i] + j)
break
print(maxi)
Ответ: 205706 23894.
Приведем решение Александра Тарасова на языке Python.
f=open('27.txt')
k=int(f.readline())*2
n=int(f.readline())
a=[int(x) for x in f]
i = j = 0
maxi=float('-inf')
for z in range(k,n):
if a[z]+a[z-k] > maxi:
maxi=a[z]+a[z-k]
i,j = z-k,z
a[i] = a[j] = float('-inf')
print(maxi + max(a))

