http://acm.timus.ru/problem.aspx?space=1&num=1658 я сделала dp[s1][s2], где s1 сумма цифр, а s2 сумма квадратов, а в dp[s1][s2] хранила наименьшую длину числа и востановливала ответ. Но увы, она не всегда правильно работает, то есть можно подобрать числа такой же длины, что соответствуют тем же условиям, но меньше чем мой ответ. Как это исправить?