记录编号 141505 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 Gravatar思邈然 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2014-12-02 18:28:04 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#define REP(i,a,b) for(int i=a;i!=b+1;++i)
using namespace std;

int n,m,now=0;

vector<int>t;
deque<vector<int> >Q;

void DFS(int deep,int last){
	if(now>n)return;
	if(deep==m){
		if(n-now>=last){
			t.push_back(n-now);
			Q.push_back(t);
			t.pop_back();
			return;
		}
	}
	REP(i,last,n){
		t.push_back(i);
		now+=i;
		DFS(deep+1,i);
		t.pop_back();
		now-=i;
	}
}

void setIO(string s){
	string in=s+".in",out=s+".out";
	freopen(in.c_str(),"r",stdin);
	freopen(out.c_str(),"w",stdout);
}

int main(){
	setIO("dataa");
	
	scanf("%d%d",&n,&m);
	DFS(1,1);
	
	printf("%d\n",Q.size());
	REP(i,0,Q.size()-1){
		vector<int> &t=Q[i];
		REP(j,0,t.size()-1)printf("%d ",t[j]);
		printf("\n");
	}
	
	return 0;
}