Advertisement
Guest User

Untitled

a guest
Jan 8th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.03 KB | None | 0 0
  1. def main():
  2.     from sys import stdin
  3.     tokens = map(int, stdin.read().split())
  4.     last_row = next(tokens)
  5.     numbers = list(tokens)
  6.     print('Total rows:', last_row)
  7.  
  8.     def path_sum(i, row, acc):
  9.         if row == last_row - 1:
  10.             return numbers[i] + acc
  11.  
  12.         v = numbers[i]
  13.         left_child_index = i + row + 1
  14.         sum_left = path_sum(left_child_index, row + 1, v + acc)
  15.         sum_right = path_sum(left_child_index + 1, row + 1, v + acc)
  16.         return max(sum_left, sum_right)
  17.  
  18.     print('answer=%d' % path_sum(0, 0, 0))
  19.  
  20. main()
  21.  
  22. # Input:
  23. # 15
  24. # 75
  25. # 95 64
  26. # 17 47 82
  27. # 18 35 87 10
  28. # 20 04 82 47 65
  29. # 19 01 23 75 03 34
  30. # 88 02 77 73 07 63 67
  31. # 99 65 04 28 06 16 70 92
  32. # 41 41 26 56 83 40 80 70 33
  33. # 41 48 72 33 47 32 37 16 94 29
  34. # 53 71 44 65 25 43 91 52 97 51 14
  35. # 70 11 33 28 77 73 17 78 39 68 17 57
  36. # 91 71 52 38 17 14 91 43 58 50 27 29 48
  37. # 63 66 04 68 89 53 67 30 73 16 69 87 40 31
  38. # 04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
  39. #
  40. # Output:
  41. # Total rows: 15
  42. # answer=1074
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement