#528. 合成分子

合成分子

小明是王国的首席科学家,他有一个仪器可以用任意原子合成新的分子。现在一共有 1010 种可供选择的原子,每种原子必须使用 112233 个,总的原子个数规定是 nn。小明想请你帮忙计算,一共能合成多少个不同的分子? 请补全下面的代码

#include <iostream>
using namespace std;
int a[10], ans;
void dfs(int u, int sum, int op) {
    if (u == 10) {
        if (sum == 0) {

        }
        return;
    }
    if (sum <= 0) return;
    for (int i = 1; i <= 3; i++) {

    }
}
int main() {
    int n;
    cin >> n;
    dfs(0, n, 0);
    cout << ans << endl;
    dfs(0, n, 1);
    return 0;
}

输入格式

一个整数 n(10n50)n(10≤n≤50),表示新分子的原子总个数。

输出格式

第一行一个整数 mm,表示不同的方案数。

接下来 mm 行,每行为一种方案,包含 1010 个整数,表示每种原子的个数。

方案按字典序从小到大输出。

格式说明输出时每行末尾的多余空格,不影响答案正确性

样例输入

29

样例输出

10 
2 3 3 3 3 3 3 3 3 3 
3 2 3 3 3 3 3 3 3 3 
3 3 2 3 3 3 3 3 3 3 
3 3 3 2 3 3 3 3 3 3 
3 3 3 3 2 3 3 3 3 3 
3 3 3 3 3 2 3 3 3 3 
3 3 3 3 3 3 2 3 3 3 
3 3 3 3 3 3 3 2 3 3 
3 3 3 3 3 3 3 3 2 3 
3 3 3 3 3 3 3 3 3 2