divide and conquer approach to problem solving