Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Oil Pie by Red_Ale
from fractions import Fraction
def divide_pie(groups):
parts = sum([abs(i) for i in groups])
left = 1
for i in groups:
left -= Fraction(i, parts) if i > 0 else left * Fraction(abs(i), parts)
return (left.numerator, left.denominator)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert isinstance((2, -2), (tuple, list)), "Return tuple or list"
assert tuple(divide_pie((2, -1, 3))) == (1, 18), "Example"
assert tuple(divide_pie((1, 2, 3))) == (0, 1), "All know about the pie"
assert tuple(divide_pie((-1, -1, -1))) == (8, 27), "One by one"
assert tuple(divide_pie((10,))) == (0, 1), "All together"
assert tuple(divide_pie((6,-4,6,24,23,65))) == (3, 2048), "All together"
assert tuple(divide_pie((99,-99))) == (1, 4), "All together"
assert tuple(divide_pie((15,33,37,16,-1,22,-73,66,-59,10,-39,57))) == (2682139399739,14362129722368), "All together"
May 18, 2022
Comments: