比赛 |
搜索题... |
评测结果 |
AAAAAAAAAA |
题目名称 |
分组 |
最终得分 |
100 |
用户昵称 |
Rivendell |
运行时间 |
0.008 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2014-11-04 18:03:21 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int ans[11]={0},n,m,anss;
void work(int i,int nn,int last)
{
int j;
if (i>m&&nn==n)
{
++anss;
return;
}
if (i>m) return;
if ((n-nn)/(m-i+1)<last) return;
for (j=last;j<=n;++j)
{
ans[i]=j;
work(i+1,nn+j,j);
}
}
void work1(int i,int nn,int last)
{
int j;
if (i>m&&nn==n)
{
for (j=1;j<=m;++j)
cout<<ans[j]<<" ";
cout<<endl;
return;
}
if (i>m) return;
if ((n-nn)/(m-i+1)<last) return;
for (j=last;j<=n;++j)
{
ans[i]=j;
work1(i+1,nn+j,j);
}
}
int main()
{
freopen("dataa.in","r",stdin);
freopen("dataa.out","w",stdout);
int i,j;
cin>>n>>m;
anss=0;
work(1,0,1);
cout<<anss<<endl;
work1(1,0,1);
fclose(stdin);
fclose(stdout);
}