Small incremental improvements.

- Now using breadth first search for finding the node equal to the
shortest winning path.
- Made some optimizations in building the path tree by preventing
unnecessary inserts. (Ones that exceed the current shortest winning
distance, or ones that are longer than half of the remaining fruits + 1)