fork download
  1. import heapq
  2. import math
  3.  
  4. def maxsum_modulo3_1(L):
  5. remainder = [], [], [] # all remainder[r] % 3 == r
  6. for x in L:
  7. remainder[x % 3].append(x)
  8.  
  9. # 00 01 02
  10. # 11 12
  11. # 22
  12. maxsum = sentinel = -math.inf # less than any integer sum
  13. if remainder[0] and remainder[1]: # (0 + 1) % 3 == 1
  14. maxsum = max(remainder[0]) + max(remainder[1])
  15. if len(remainder[2]) > 1: # (2 + 2) % 3 == 1
  16. maxsum = max(maxsum, sum(heapq.nlargest(2, remainder[2])))
  17. if maxsum is sentinel:
  18. raise ValueError("can't find any sum % 3 == 1")
  19. return maxsum
  20.  
  21. print(maxsum_modulo3_1(map(int, input().split())))
Success #stdin #stdout 0.01s 27720KB
stdin
10 8 8 0
stdout
16