Teetering on the Edge
Consider the teetertotters below, otherwise known as seesaws.
Letâs assume that four staff members (Analysia, Bernardo, Christie, and Diana) want to teeter (i.e., sit) on these totters, and letâs further assume that Analysia weighs 30kg, Bernardo weighs 35kg, Christie weighs 25kg, and Diana weighs 30kg. Is it possible to arrange the staff in some way on the teetertotter such that it would be balanced? The answer is yes: with Analysia and Diana on one side, and Bernardo and Christie on the other, each side of the teetertotter would have 60kg of weight on it.
Now letâs imagine we add a fifth staff member: Elijah, who weighs 50kg. Can the teetertotter be balanced now? Again, yes. With Bernardo and Elijah on one side, and with Analysia, Christie, and Diana on the other, each side of the teetertotter has 85kg of weight on it, even though the two sides donât have the same number of staff.
Equivalently, we can consider a list in Python âbalanceableâ if it is possible toÂ permuteÂ its elements and put an imaginary fulcrum between two elements such that the sum of elements on the left side of the fulcrum is equal to the sum of the elements on the right half of the fulcrum.
For example,
a = [9, 26, 2, 19]
is balanceable, because we could rearrange the elements ofÂ a
Â to beÂ [9, 19, 2, 26]
Â and place the fulcrum betweenÂ a[1]
Â andÂ a[2]
Â and the sum of the elements on each side of the fulcrum would be 28
. (Note that other arrangements of the elements ofÂ a
Â are possible as well.) Similarly,
b = [1, 2, 3, 9, 3]
is also balanceable, because we could, for instance, rearrange the elements ofÂ b
Â to beÂ [9, 3, 3, 1, 2]
Â and place the fulcrum betweenÂ b[0]
Â andÂ b[1]
, in which case the sum of the elements on each side of the fulcrum would be 9
. Note that the list is balanceable even though the number of elements on each side of the fulcrum is different, with one element on the left and four elements on the right.
By contrast, note that
c = [19, 8, 12]
is not balanceable. There is no way to permute the elements ofÂ c
Â and place a fulcrum between any two of them and have the list be balanced.
Questions
For each of the below questions, you may assume that all elements of input lists will be nonnegative integers.

(1 point.) Is the listÂ
[5, 5]
Â balanceable? 
(1 point.) Is the listÂ
[1, 0, 1, 0, 1, 0]
Â balanceable? 
(1 point.) Is the listÂ
[3, 4, 5, 6, 8]
Â balanceable? 
(2 points.) Identify at least two potential features or properties of a list of items that would allow you to relatively quickly determine that the list is not balanceable.

(8 points.) ImplementÂ in
teetering.py
, in Python, a function calledÂbalanceable
Â that accepts one parameter: alist
of integers callednumbers
. The function should returnÂTrue
Â ifÂnumbers
Â is balanceable andÂFalse
Â otherwise. You may assume thatÂlen(numbers)
Â is positive and greater than or equal to 2. You may write additional helper functions if you wish, but yourbalanceable
function must be prototyped as described above.
In addition to submitting this subquestion using the instructions contained in the âHow to Submitâ section of the Test, you must also:
 Include your definition of the
balanceable
function in a file calledteetering.py
(importing any libraries necessary to run your code), and  Submit
teetering.py
by runningsubmit50 cs50/problems/2019/fall/test/teetering
.