decrease and conquer algorithm