online algorithm challenge solutions