比赛 搜索题... 评测结果 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");
    }
}