EGEsoll - сборник решений задач из ЕГЭ

Задача 1 сумма не кратна 3

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

В ответе укажите значение искомой суммы.

Download File 1

Добавлено: 17.04.26 21:08

Перейти к решению

Решение

Ответ: 399762080

Оптимальное решение на Python:

f = open("embed.txt")
N = f.readline()

s = 0
min_diff = 100000000000000000
for line in f.readlines():
    t = list(map(int, line.split()))
    if max(t) - min(t) < min_diff and (max(t) - min(t)) % 3 != 0:
        min_diff = max(t) - min(t)
    s += max(t)

print(s-min_diff) # 399762080

Решение полным перебором на Python:

from itertools import product

f = open("embed.txt")
N = int(f.readline())
a = []
for line in f.readlines():
    a.append(list(map(int, line.split())))

matrix = list(product([0, 1], repeat=N))

list_s = []
for c in matrix:
    s = 0
    for el, coup in zip(c, a):
        s += coup[el]
    if s % 3 != 0:
        list_s.append(s)

print(max(list_s))

Автор - rubygem17

Объяснение

None

Назад