На вход программы подаётся: в первой строке — количество входных чисел N . В последующих N строках — последовательность из N целых чисел. Известно, что каждое число положительное и не превышает 700 000 000. Найти среди них такие три числа, что их сумма максимальна, и хотя бы два из них имеют разные остатки от деления на 17. Ответом является такая максимальная сумма. Гарантируется, что такая тройка чисел есть. Пример организации исходных данных во входном файле:
4
15
32
49
7
Для указанных входных данных значением искомой суммы должно быть число 88.
Пояснение. При таких данных имеется всего 4 варианта выбрать тройку чисел: 15 + 32 + 49 = 96, 15 + 32 + 7 = 54, 15 + 49 + 7 = 71, 32 + 49 + 7 = 88. Максимальную сумму даёт первая тройка. Но в ней все три числа имеют одинаковый остаток от деления на 17. В следующей по величине сумме (88) есть два числа, которые имеют разные остатки. В ответе укажите два числа через пробел: сначала значение искомой суммы для файла А, затем для файла B.
f = open(’D:/27B__1vpyj.txt’) #для ответа на A нужно подключить файл 27A.txt
n = int(f.readline())
a = []
for i in range(n):
a.append(int(f.readline()))
mx = [0]*3
for i in range(n):
t = [[mx[0], mx[1], a[i]], [mx[0], a[i], mx[2]], [a[i], mx[1], mx[2]]]
for j in t:
if sum(j) > sum(mx):
if len(set([j[0] % 17, j[1] % 17, j[2] % 17])) >= 2:
mx = j[:]
print(sum(mx))