Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число — максимально возможную сумму, соответствующую условиям задачи.
В ответе укажите значение искомой суммы.
Добавлено: 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