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

Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел делилась на 5 и при этом была максимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.

Входные данные: Даны два входных файла (файл A  и файл B  ), каждый из которых содержит в первой строке количество пар N  (1 ≤ N ≤ 100000).  Каждая из следующих N  строк содержит два натуральных числа, не превышающих 10000.

В ответе укажите два числа через пробел: сначала значение искомой суммы для файла A,  затем для файла B.

f = open(’27a.txt’)
n = int(f.readline())
r = [100000000000]*5
s = 0
for i in range(n):
    a, b = map(int, f.readline().split())
    s += max(a, b)
    d = abs(a - b)
    r1 = r[:]
    for j in range(5):
        if d+r1[j] < r1[(d+r1[j]) % 5]:
            r[(d + r1[j]) % 5] = d+r1[j]
    if d < r[d % 5]:
        r[d % 5] = d
if s % 5 != 0:
    s -= r[s % 5]
print(s)

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