合成分子
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
小明是王国的首席科学家,他有一个仪器可以用任意原子合成新的分子。现在一共有 种可供选择的原子,每种原子必须使用 、、 个,总的原子个数规定是 。小明想请你帮忙计算,一共能合成多少个不同的分子? 请补全下面的代码
#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;
}
输入格式
一个整数 ,表示新分子的原子总个数。
输出格式
第一行一个整数 ,表示不同的方案数。
接下来 行,每行为一种方案,包含 个整数,表示每种原子的个数。
方案按字典序从小到大输出。
格式说明输出时每行末尾的多余空格,不影响答案正确性
样例输入
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