Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
An arithmetic approach solution in Creative category for Water Jars by ale1ster
def checkio(f, s, goal):
def sol_2a(f, s, goal):
(res, k) = ([], 0)
while k != goal:
while not (k == goal or k > s):
res.extend(('0' + f_id, f_id + s_id))
k += f
res.extend((s_id + '0', f_id + s_id))
if k > s:
k -= s
return res[:-2] if goal != f else res[:-3]
def sol_2b(f, s, goal):
(res, k) = ([], 0)
while k != goal:
res.append('0' + s_id)
k += s
while not (k == goal or k < f):
res.extend((s_id + f_id, f_id + '0'))
k -= f
res.append(s_id + f_id)
return res[:-2] if goal != s else res[:-1]
(f_id, s_id) = ('1', '2') if f < s else ('2', '1')
(f, s) = (min(f, s), max(f, s))
return min(sol_2a(f, s, goal), sol_2b(f, s, goal), key=len)
July 30, 2014