Решение ✅ (№ 2660) (Демовариант 2021 г.) Python. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной.
Предметы
(№ 2660) (Демовариант 2021 г.) Python. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной.
0 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 5
Загрузка...

(№ 2660) (Демовариант 2021 г.). Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.
Входные данные. Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.
Пример входного файла:

6
1 3
5 12
6 9
5 4
3 3
1 1

Для указанных входных данных значением искомой суммы должно быть число 32.
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.

a = [[int(n) for n in x.split()] for x in open('27_2660_B.txt')]
del(a[0])
s=0
for i in range(len(a)):
    if a[i][0]<a[i][1]:
        t=a[i][0]
        a[i][0]=a[i][1]
        a[i][1]=t
    s=s+a[i][0]
    a[i].append(a[i][0]-a[i][1])
    a[i].append((a[i][0]-a[i][1])%3)
a= sorted(a, key=lambda row: row[2])
for i in range(len(a)):
    if a[i][3]!=0:
        s=s-a[i][2]
        break
print(s)

Ответ:

127127 399762080

Формат файла

  • doc

Источник

сайт Поляккова

Создание сайтов - Лидер Поиска

Refund Reason