Don't include <iostream> to 'fix' a problem with std::abs returning a double
Comments to highlight sections of code
More efficient sign handling