assignment 5 for algorithms I at coursera, Princeton university. skills: Java