Дана последовательность целых чисел. Расстояние между элементами последовательности — это разность их порядковых номеров. Например, если два элемента стоят в последовательности рядом, расстояние между ними
Необходимо выбрать из последовательности три числа так, чтобы расстояние между какими-то двумя из них было
Запишите в ответе найденную сумму.
Входные данные.
Первая строка входного файла содержит целое число K — параметр для определения расстояния, вторая строка содержит
Пример входного файла.
Первая строка входного файла содержит целое
Вам даны два входных файла
Ответ:
Приведем решение на языке Python для файла A.
f = open('27-A.txt')
k = int(f.readline()) * 3
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 для файлов A и B.
f = open('27-B.txt')
k = int(f.readline()) * 3
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)
Ответ: 205323 20668.
Приведём решение Юрия Красильникова на языке Python.
a=[int(s) for s in open('27.txt')]
k,r = a[0]*3, -10**10
a = a[2:]
p = sorted(a, reverse=True)[:3]
for i in range(len(a)-k):
t = p.copy()
if a[i] in t: t.remove(a[i])
if a[i+k] in t: t.remove(a[i+k])
r = max(r, a[i] + a[i+k] + max(t))
print(r)

