halving problem solving