比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 好啊好啊 运行时间 0.003 s
代码语言 C++ 内存使用 0.40 MiB
提交时间 2014-11-04 19:35:21
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;

int n,m,ans;
int f[1000][22],t[22];

void dfs(int zu,int num,int sheng)
{
    if(num>n)
        return;
    if(zu==m && sheng<=n-num){
        ans++;
        for(int i=1;i<m;i++)
            f[ans][i]=t[i];
        f[ans][m]=n-num;
        return;
    }
    for(int i=sheng;i<=n;i++)
    {
        t[zu]=i;
        dfs(zu+1,num+i,i);    
    }   
}

int main() {
    freopen("dataa.in","r",stdin);  
    freopen("dataa.out","w",stdout);  
    cin>>n>>m;
    dfs(1,0,1);
    cout<<ans;
    for(int i=1;i<=ans;i++){
        for(int j=1;j<=m;j++)
            cout<<f[i][j]<<" ";
        cout<<endl;
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}