记录编号 137505 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 Gravatar明天 是否通过 通过
代码语言 C++ 运行时间 0.021 s
提交时间 2014-11-04 20:50:42 内存使用 0.36 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;

int n,m,f[1000][11],ans,a[11];

void dfs(int k,int last,int total)
{
    if (k==m)
    {
        a[k]=total;
        ans++;
        for (int i=1; i<=m; i++)
            f[ans][i]=a[i];
        return;
    }

    for (int ii=last; ii<=total/(m-k+1); ii++)
    {
        a[k]=ii;
        dfs(k+1,ii,total-ii);
    }
}
int main()
{
    freopen("dataa.in","r",stdin);
    freopen("dataa.out","w",stdout);
    
    scanf("%d%d",&n,&m);
    
    dfs(1,1,n);//位置,当前取值最小值,剩余
    
    printf("%d\n",ans);
    for (int i=1; i<=ans; i++)
    {
        for (int j=1; j<m; j++)
            printf("%d ",f[i][j]);
        printf("%d\n",f[i][m]);
    }
    return 0;
}