比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 zjh001 运行时间 0.010 s
代码语言 C 内存使用 0.45 MiB
提交时间 2015-11-06 18:47:55
显示代码纯文本
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*
输入文件名: dataa.in
6 3
输出文件名: dataa.out
3 
1 1 4 
1 2 3 
2 2 2
*/
int n,m;
int s[205][205],cnt;
int a[205];

int find(int x,int y,int t)
{
    int i,j;

    if (t==m-1 && x>=y) 
    {
       for (i=0;i<m-1;i++)
           s[cnt][i]=a[i];
      
      s[cnt][m-1]=x;
      
       cnt++;
       
       return 0;
    }

    for (i=y;i<=x;i++)
    {  
        a[t]=i;
        find(x-i,i,t+1);
    }
}

int main()
{
    int i,j;
    
    freopen("dataa.in","r",stdin);
    freopen("dataa.out","w",stdout);
    
    scanf ("%d%d",&n,&m);
    
    find(n,1,0);
    
    printf ("%d\n",cnt);
    
    for (i=0;i<cnt;i++)
    {
        for (j=0;j<m;j++)
            printf ("%d ",s[i][j]);
        printf ("\n");
    }
    
    
    //while (1);
    return 0;
}