记录编号 137740 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 GravatarEzoi_XY 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2014-11-05 08:08:05 内存使用 0.30 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
using namespace std;
int n, m, x[11], f[25][15], a[95][11], tot;
void dfs(int p, int l, int s){
	if (p == m){
		x[p] = n - s;
		memcpy(a[tot++], x, sizeof(x));
		return;
	}
	for (int i(l); s + i * (m - p + 1) <= n; ++i) dfs(p + 1, x[p] = i, s + i);
}
int main(){
	freopen("dataa.in", "r", stdin);
	freopen("dataa.out", "w", stdout);
	int i, j;
	scanf("%d%d", &n, &m);
	f[0][0] = 1;
	for (i = 1; i <= n; ++i)
		for (j = i < m? i: m; j; --j)
			f[i][j] = f[i - j][j] + f[i - 1][j - 1];
	printf("%d\n", f[n][m]);
	dfs(1, 1, 0);
	for (i = 0; i < tot; ++i){
		for (j = 1; j < m; ++j) printf("%d ", a[i][j]);
		printf("%d\n", a[i][m]);
	}
	return 0;
}