比赛 搜索题... 评测结果 WWWWWWWWWW
题目名称 分组 最终得分 0
用户昵称 Vincent 运行时间 0.015 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2014-11-04 19:26:46
显示代码纯文本
#include <cstdio>
#define MAXN 30
using namespace std;

int a[MAXN]={1};
int n,m,t;

void printans(){
    bool first=true;
    for (int i=1;i<=m;++i){
        if (first) first=false;
        else printf(" ");
        printf("%d",a[i]);
    }
    printf("\n");
}

void dfs(int d,int s){
    for(int i=a[d-1]; i<=t; ++i){
        if( s+i>n ) break;
        if ( d==m-1 && n-s>=(i<<1) ){
            a[d]=i;
            a[d+1]=n-s-i;
            printans();
        }
        else {
            a[d]=i;
            dfs(d+1,s+i);
        }
    }
}


int main(){
    freopen("dataa.in","r",stdin);
    freopen("dataa.out","w",stdout);
    scanf ("%d%d",&n,&m);
    t=n/m+1;
    dfs (1,0);
    return 0;
}