import fractions
class WaterJug:
def __init__(self, x, y, goal):
self.JUG_1 = x
self.JUG_2 = y
self.j_1 = 0
self.j_2 = 0
self.pre_j_1 = 0
self.pre_j_2 = 0
self.goal = goal
self.path = []
def get_path(self):
pass
def next_state(self, next_act):
self.path.append(self.j_1, self.j_2)
if self.j_1 < self.JUG_1:
next_act.append(self.JUG_1, self.j_2)
if self.j_2 < self.JUG_2:
next_act.append(self.j_1, self.JUG_2)
if self.j_1 > 0:
next_act.append(0, self.j_2)
if self.j_2 > 0:
next_act.append(self.j_1, 0)
if self.j_1 + self.j_2 >= self.JUG_1 and self.j_2 > 0:
next_act.append(self.JUG_1, self.j_2 - (self.JUG_1 - self.j_1))
if self.j_1 + self.j_2 >= 0 and self.j_1 > 0:
next_act.append(self.j_1- (self.JUG_2 - self.j_2), self.JUG_2)
if self.j_1 + self.j_2 <= self.JUG_1 and self.j_2 > 0:
next_act.append(self.j_1 + self.j_2, 0)
if self.j_1 + self.j_2 <= self.JUG_2 and self.j_1 > 0:
next_act.append(0, self.j_1 + self.j_2)
if __name__ == "__main__":
x = int(raw_input( "Enter the capacity of first Water jug : "))
y = int(raw_input("Enter the Capacity of the second water jug : "))
goal = int(raw_input("Enter the amount you want in the first jug : "))
problem = WaterJug(x, y, goal)
hcf = fractions.gcd( problem.JUG_1, problem.JUG_2)
if goal % hcf == 0:
problem.get_path()
else: print "No Solution exists"
aW1wb3J0IGZyYWN0aW9ucwoKY2xhc3MgV2F0ZXJKdWc6CiAgICAgICAgCiAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgsIHksIGdvYWwpOgogICAgICAgICAgICBzZWxmLkpVR18xID0geAogICAgICAgICAgICBzZWxmLkpVR18yID0geQogICAgICAgICAgICBzZWxmLmpfMSA9IDAKICAgICAgICAgICAgc2VsZi5qXzIgPSAwCiAgICAgICAgICAgIHNlbGYucHJlX2pfMSA9IDAKICAgICAgICAgICAgc2VsZi5wcmVfal8yID0gMAogICAgICAgICAgICBzZWxmLmdvYWwgPSBnb2FsCiAgICAgICAgICAgIHNlbGYucGF0aCA9IFtdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGRlZiBnZXRfcGF0aChzZWxmKTogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAKICAgICAgICBkZWYgbmV4dF9zdGF0ZShzZWxmLCBuZXh0X2FjdCk6CiAgICAgICAgICAgIHNlbGYucGF0aC5hcHBlbmQoc2VsZi5qXzEsIHNlbGYual8yKQogICAgICAgICAgICBpZiBzZWxmLmpfMSA8IHNlbGYuSlVHXzE6CiAgICAgICAgICAgICAgICBuZXh0X2FjdC5hcHBlbmQoc2VsZi5KVUdfMSwgc2VsZi5qXzIpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYgc2VsZi5qXzIgPCBzZWxmLkpVR18yOgogICAgICAgICAgICAgICAgbmV4dF9hY3QuYXBwZW5kKHNlbGYual8xLCBzZWxmLkpVR18yKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHNlbGYual8xID4gMDoKICAgICAgICAgICAgICAgIG5leHRfYWN0LmFwcGVuZCgwLCBzZWxmLmpfMikKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBpZiBzZWxmLmpfMiA+IDA6CiAgICAgICAgICAgICAgICBuZXh0X2FjdC5hcHBlbmQoc2VsZi5qXzEsIDApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYgc2VsZi5qXzEgKyBzZWxmLmpfMiA+PSBzZWxmLkpVR18xIGFuZCBzZWxmLmpfMiA+IDA6CiAgICAgICAgICAgICAgICBuZXh0X2FjdC5hcHBlbmQoc2VsZi5KVUdfMSwgc2VsZi5qXzIgLSAoc2VsZi5KVUdfMSAtIHNlbGYual8xKSkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBpZiBzZWxmLmpfMSArIHNlbGYual8yID49IDAgYW5kIHNlbGYual8xID4gMDoKICAgICAgICAgICAgICAgIG5leHRfYWN0LmFwcGVuZChzZWxmLmpfMS0gKHNlbGYuSlVHXzIgLSBzZWxmLmpfMiksIHNlbGYuSlVHXzIpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYgc2VsZi5qXzEgKyBzZWxmLmpfMiA8PSBzZWxmLkpVR18xIGFuZCBzZWxmLmpfMiA+IDA6CiAgICAgICAgICAgICAgICBuZXh0X2FjdC5hcHBlbmQoc2VsZi5qXzEgKyBzZWxmLmpfMiwgMCkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBpZiBzZWxmLmpfMSArIHNlbGYual8yIDw9IHNlbGYuSlVHXzIgYW5kIHNlbGYual8xID4gMDoKICAgICAgICAgICAgICAgIG5leHRfYWN0LmFwcGVuZCgwLCBzZWxmLmpfMSArIHNlbGYual8yKQogICAgICAgIAppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgeCA9IGludChyYXdfaW5wdXQoICJFbnRlciB0aGUgY2FwYWNpdHkgb2YgZmlyc3QgV2F0ZXIganVnIDogIikpCiAgICB5ID0gaW50KHJhd19pbnB1dCgiRW50ZXIgdGhlIENhcGFjaXR5IG9mIHRoZSBzZWNvbmQgd2F0ZXIganVnIDogIikpCiAgICBnb2FsID0gaW50KHJhd19pbnB1dCgiRW50ZXIgdGhlIGFtb3VudCB5b3Ugd2FudCBpbiB0aGUgZmlyc3QganVnIDogIikpCiAgICBwcm9ibGVtID0gV2F0ZXJKdWcoeCwgeSwgZ29hbCkKICAgIGhjZiA9IGZyYWN0aW9ucy5nY2QoIHByb2JsZW0uSlVHXzEsIHByb2JsZW0uSlVHXzIpCiAgICBpZiBnb2FsICUgaGNmID09IDA6CiAgICAgICAgcHJvYmxlbS5nZXRfcGF0aCgpCiAgICBlbHNlOiBwcmludCAiTm8gU29sdXRpb24gZXhpc3RzIg==