Your mission, should you choose to accept it, is to write a program to solve this common programming interview puzzle in a generic way.
The puzzle goes like this - You have two buckets. A 3 gallon bucket and a 5 gallon bucket. Buckets are not marked or graduated. You are to fetch 4 gallons of water in a single trip to the river. How will you do it?
Photo Credit : http://www.flickr.com/photos/71256895@N00/3688461774/sizes/l/in/photostream/