Problem solving with C++ from thehuxley.com