记录编号 |
309458 |
评测结果 |
AAAAAAAAAA |
题目名称 |
分组 |
最终得分 |
100 |
用户昵称 |
Aeons |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.021 s |
提交时间 |
2016-09-19 19:39:14 |
内存使用 |
0.66 MiB |
显示代码纯文本
#include <fstream>
using namespace std;
ifstream fin("dataa.in");
ofstream fout("dataa.out");
int m,n,c[11],ans=0,civilian[10000][11],t;
void dfs(int x,int y)
{
int i;
if(x==m)
{
c[m]=n-t;
if(c[m]>=c[m-1])
{
ans++;
for(i=1;i<=m;i++)
{
civilian[ans][i]=c[i];
}
}
}
else
{
for(i=y;i<=n-m+1;i++)
{
c[x]=i;
t+=i;
if(t<=n)
dfs(x+1,i);
t-=i;
}
}
}
int main()
{
fin>>n>>m;
int i;
dfs(1,1);
fout<<ans<<endl;
for(i=1;i<=ans;i++)
{
for(int j=1;j<=m;j++)
fout<<civilian[i][j]<<' ';
fout<<endl;
}
fin.close();
fout.close();
return 0;
}