Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Имеется набор данных, состоящий из троек положительных целых чисел.
- Необходимо выбрать из каждой тройки ровно одно число так,чтобы сумма
- всех выбранных чиселне дклилась на 3 и при этом была максимально возможной.
- Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0"""
- n = int(input())
- summ = 0
- flag = True
- dif = 0
- dif1 = 0
- for i in range(n):
- a, b, c = map(int,input().split())
- summ += max(a, b, c)
- x = max(a, b) - min(a, b)
- y = max(b, c) - min(b, c)
- z = max(a, c) - min(a, c)
- if x > 0 and x % 3 != 0 and x <= y and x <= z: # Выбираем намименьшую разность из тройки dif1,
- dif1 = x # которая не делится на 3 и которая
- elif y > 0 and y % 3 != 0 and y <= x and y <= z: # строго больше 0 ("хорошую" разность)
- dif1 = y
- elif z > 0 and z % 3 != 0 and z <= y and z <= x:
- dif1 = z
- if flag == True and dif1 != 0: # Т.к. изначально мы не знаем наименьшее
- dif = dif1 # значение общей разности dif, первую
- flag = False # "хорошую" разность dif1 запоминаем
- if dif1 < dif: # Сравниваем наименьшую разность из тройки dif1
- dif = dif1 # с общей наименьшей разностью dif и берем меньшую
- # их них
- if summ % 3 == 0 and dif == 0:
- print(0)
- elif summ % 3 == 0 and dif != 0:
- print(summ - dif)
- else:
- print(summ)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement