比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 ミント 运行时间 0.010 s
代码语言 C++ 内存使用 4.83 MiB
提交时间 2015-11-02 18:37:53
显示代码纯文本
#include <fstream>
#include <algorithm>
#include <string>
#include <cstring>

using namespace std;

ifstream fin("dataa.in");
ofstream fout("dataa.out");

const int maxm = 10 + 5;
const int bignum = 100000;
int n, m;
int kount = 0;
int sum = 0;
int now = 0;
int num[maxm];
int ans[bignum][maxm];
bool vis[maxm][maxm];
void dfs(int x, int y)
{
	if(x==m)
	{
		num[m] = n - now;
		if(num[m]>=num[m-1])
		{
			kount++;
			for(int i=1;i<=m;i++)
				ans[kount][i] = num[i];
		}
	}
	else
	{
		for(int i=y;i<=n-m+1;i++)
		{
			num[x] = i;
			now = now + i;
			if(now<=n)
				dfs(x+1, i);
			now = now - i;
		}
	}
}

int main()
{
	//memset(vis, false, sizeof(vis));
	
	fin>>n>>m;
	
	dfs(1, 1);
	
	fout<<kount<<endl;
	for(int i=1;i<=kount;i++)
	{
		for(int j=1;j<=m;j++)
			fout<<ans[i][j]<<' ';
		fout<<endl;
	}
	
	fin.close();
	fout.close();
	
	return 0;
}