divide and conquer algorithm problems with solutions