(№ 2683) Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел НЕ оканчивалась на 5 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.
Входные данные. Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.
Пример входного файла:
6 3 5 5 12 6 9 5 4 7 9 5 1
Для указанных входных данных значением искомой суммы должно быть число 44.
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.
a = [[int(n) for n in x.split()] for x in open('27_2683_B.txt')]
del(a[0])
s=0
for i in range(len(a)):
s+=max(a[i][0],a[i][1])
a[i].append(abs(a[i][0]-a[i][1]))
if s%10!=5:
print(s)
else:
b=[]
j=0
a.sort(key = lambda x: x[2])
while j<len(a) and a[j][2]%10==0:
b.append(a[j][2])
j+=1
if j<len(a):
b.append(a[j][2])
mi=999999999
b.sort()
for c in range(len(b)):
mi=min(mi,b[c])
for d in range(c+1,len(b)):
mi=min(mi,b[c]+b[d])
for e in range(d+1,len(b)):
mi=min(mi,b[c]+b[d]+b[e])
print(s-mi)
13159 40799380
сайт Полякова