Впрочем, особого смысла это не имеет. К тому же, предложенный мной способ не обязательно даст минимальное кол-во разбиений. Чистая эвристика.

Вообще - задача динамического программирования, кстати. На одной из олимпиад в моем прошлом, кстати, подобная задача была.