比赛 |
搜索题... |
评测结果 |
AAAAAAAAAA |
题目名称 |
分组 |
最终得分 |
100 |
用户昵称 |
TA |
运行时间 |
0.007 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2014-11-04 18:00:08 |
显示代码纯文本
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
typedef short hd;
hd n,m,ans[91][11],tot,tmp[10];
void dfs(hd x,hd pred,hd sum){
if(sum+pred*(m-x)>n)return;
if(x==m){
if(n-sum>=pred)
{
for(hd i=1;i<m;++i)
ans[tot][i]=tmp[i];
ans[tot++][m]=n-sum;
}
return;
}
for(hd i=pred;i<n;++i){
tmp[x]=i;
dfs(x+1,i,sum+i);
}
}
int main(){
freopen("dataa.in","r",stdin),freopen("dataa.out","w",stdout);
scanf("%hd%hd",&n,&m);
dfs(1,1,0);
printf("%hd\n",tot);
++m;
for(hd i=0;i<tot;++i){
for(hd j=1;j<m;++j)
printf("%hd ",ans[i][j]);
printf("\n");
}
}