Advertisement
denvolf2000

Задача 3. ДЗ 13.05

May 12th, 2018
1,185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.12 KB | None | 0 0
  1. """Имеется набор данных, состоящий из троек положительных целых чисел.
  2. Необходимо выбрать из каждой тройки ровно одно число так,чтобы сумма
  3. всех выбранных чиселне дклилась на  3  и при этом была максимально возможной.
  4. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать  0"""
  5.  
  6. n = int(input())
  7.  
  8. summ = 0
  9. flag = True
  10. dif = 0
  11. dif1 = 0
  12.  
  13. for i in range(n):
  14.     a, b, c = map(int,input().split())
  15.     summ += max(a, b, c)
  16.  
  17.     x = max(a, b) - min(a, b)
  18.     y = max(b, c) - min(b, c)
  19.     z = max(a, c) - min(a, c)
  20.  
  21.     if x > 0 and x % 3 != 0 and x <= y and x <= z:     # Выбираем намименьшую разность из тройки dif1,
  22.         dif1 = x                                       # которая не делится на 3 и которая
  23.     elif y > 0 and y % 3 != 0 and y <= x and y <= z:   # строго больше 0 ("хорошую" разность)
  24.         dif1 = y                                      
  25.     elif z > 0 and z % 3 != 0 and z <= y and z <= x:  
  26.         dif1 = z
  27.  
  28.     if flag == True and dif1 != 0:                     # Т.к. изначально мы не знаем наименьшее
  29.         dif = dif1                                     # значение общей разности dif, первую
  30.         flag = False                                   # "хорошую" разность dif1 запоминаем
  31.  
  32.     if dif1 < dif:                                     # Сравниваем наименьшую разность из тройки dif1
  33.         dif = dif1                                     # с общей наименьшей разностью dif и берем меньшую
  34.                                                        # их них
  35. if summ % 3 == 0 and dif == 0:                      
  36.     print(0)
  37. elif summ % 3 == 0 and dif != 0:
  38.     print(summ - dif)
  39. else:
  40.     print(summ)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement