比赛 |
搜索题... |
评测结果 |
AAAAAAAAAA |
题目名称 |
分组 |
最终得分 |
100 |
用户昵称 |
博文 |
运行时间 |
0.014 s |
代码语言 |
C++ |
内存使用 |
0.36 MiB |
提交时间 |
2014-11-04 20:09:07 |
显示代码纯文本
/*
Name:
Date: 04/11/14 08:24
Description:
Analysis:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m,sum=0;
int tmp[50],ans[1024][12];
void search(int num,int typ,int tot)
{
//printf("num=%d typ=%d tot=%d \n",num,typ,tot);
if(typ==m){
if(tot==n){
sum++;
for(int i=1;i<=m;i++) ans[sum][i]=tmp[i];
}
return ;
}
for(int i=num; i<=n; i++){
if(tot+i>n) break;
tmp[typ+1]=i;
search(i,typ+1,tot+i);
tmp[typ+1]=0;
}
}
int main()
{
freopen("dataa.in","r",stdin);
freopen("dataa.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++){
tmp[1]=i;
search(i,1,i);
tmp[1]=0;
}
printf("%d\n",sum);
for(int i=1;i<=sum;i++){
for(int j=1;j<=m;j++){
printf("%d ",ans[i][j]);
}printf("\n");
}
fclose(stdin);
fclose(stdout);
//while(1);
return 0;
}