#include #include #include using namespace std; int dp[10][200000], mx[10]; int dfs(int len, int pre, bool flag) { if (len < 0) return pre >= 0; if (pre < 0) return 0; if (!flag && dp[len][pre] != -1) return dp[len][pre]; int end = flag?mx[len]:9, ans = 0; for (int i = 0; i <= end; ++i) { ans += dfs(len-1, pre-i*(1<