记录编号 |
309456 |
评测结果 |
AAAAAAAAAA |
题目名称 |
分组 |
最终得分 |
100 |
用户昵称 |
WHZ0325 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.025 s |
提交时间 |
2016-09-19 19:33:41 |
内存使用 |
0.33 MiB |
显示代码纯文本
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dataa.in");
ofstream fout("dataa.out");
int m,n;
vector<int> way;
vector<int> ways[1000];
int wi=0;
void dfs(int n0,int max0) {
if(way.size()==m-1) {
if(n0==0||n0<max0) {
return;
}
way.push_back(n0);
ways[wi]=way;
way.pop_back();
wi++;
return;
}
else {
for(int i=max0;i<=n0;i++) {
way.push_back(i);
dfs(n0-i,i);
way.pop_back();
}
}
}
int main() {
fin>>n>>m;
dfs(n,1);
fout<<wi<<endl;
for(int i=0;i<wi;i++) {
for(int j=0;j<ways[i].size();j++) {
fout<<ways[i][j]<<" ";
}
fout<<endl;
}
fin.close();
fout.close();
return 0;
}