fork(3) download
  1. #include <vector>
  2. #include <iostream>
  3. #include <iomanip>
  4.  
  5. using namespace std;
  6.  
  7. void Generate(int N, int K, vector<int>& res) // N шаров, K корзин
  8. {
  9. if (N == 0)
  10. {
  11. for(auto n: res) cout << n << " ";
  12. for(int i = 0; i < K; ++i)
  13. {
  14. cout << 0;
  15. if (i != K-1) cout << " ";
  16. }
  17. cout << endl;
  18. }
  19. else if (K == 0)
  20. {
  21. return;
  22. } else {
  23. for(int i = 0; i <= N; ++i)
  24. {
  25. res.push_back(i);
  26. Generate(N-i,K-1,res);
  27. res.pop_back();
  28. }
  29. }
  30. }
  31.  
  32.  
  33.  
  34. int main(int argc, const char * argv[])
  35. {
  36. vector<int> r;
  37. Generate(10,3,r);
  38. }
  39.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
0 0 10 
0 1 9 
0 2 8 
0 3 7 
0 4 6 
0 5 5 
0 6 4 
0 7 3 
0 8 2 
0 9 1 
0 10 0
1 0 9 
1 1 8 
1 2 7 
1 3 6 
1 4 5 
1 5 4 
1 6 3 
1 7 2 
1 8 1 
1 9 0
2 0 8 
2 1 7 
2 2 6 
2 3 5 
2 4 4 
2 5 3 
2 6 2 
2 7 1 
2 8 0
3 0 7 
3 1 6 
3 2 5 
3 3 4 
3 4 3 
3 5 2 
3 6 1 
3 7 0
4 0 6 
4 1 5 
4 2 4 
4 3 3 
4 4 2 
4 5 1 
4 6 0
5 0 5 
5 1 4 
5 2 3 
5 3 2 
5 4 1 
5 5 0
6 0 4 
6 1 3 
6 2 2 
6 3 1 
6 4 0
7 0 3 
7 1 2 
7 2 1 
7 3 0
8 0 2 
8 1 1 
8 2 0
9 0 1 
9 1 0
10 0 0