Задача к ЕГЭ по информатике на тему «Макс/мин, кол-во пар, сумма/разность кратна/не кратна» №1

На вход программы подаётся: в первой строке — количество входных чисел N (N  ≤ 106)  . В последующих 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))

Ответ: 20839995 20999934
Оцените статью
Я решу все!