fork(1) download
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX_VALUE = 40;
  7.  
  8. int tab[MAX_VALUE];
  9. int ileKomb;
  10.  
  11. void drukuj(int *koniec) {
  12. for (int *i=tab; i<koniec; ++i) {
  13. cout << *i << " ";
  14. }
  15. cout << endl;
  16. ileKomb++;
  17. }
  18.  
  19. void rozbijNaSume(int x, int maxWart, int *a) {
  20. maxWart = min(x,maxWart);
  21. if (x==maxWart) {
  22. *a = x;
  23. drukuj(a+1);
  24. --maxWart;
  25. }
  26. for (int i=maxWart; i>0; --i) {
  27. *a = i;
  28. rozbijNaSume(x-i, i, a+1);
  29. }
  30. }
  31.  
  32. int main() {
  33. int n;
  34. while (cin >> n) {
  35. if (n>MAX_VALUE)
  36. break;
  37.  
  38. ileKomb = 0;
  39. rozbijNaSume(n,n,tab);
  40. cout << "Możliwości: " << ileKomb << endl << endl;
  41. }
  42. return 0;
  43. }
Success #stdin #stdout 0s 2856KB
stdin
2 3 5 10 15
stdout
2 
1 1 
Możliwości: 2

3 
2 1 
1 1 1 
Możliwości: 3

5 
4 1 
3 2 
3 1 1 
2 2 1 
2 1 1 1 
1 1 1 1 1 
Możliwości: 7

10 
9 1 
8 2 
8 1 1 
7 3 
7 2 1 
7 1 1 1 
6 4 
6 3 1 
6 2 2 
6 2 1 1 
6 1 1 1 1 
5 5 
5 4 1 
5 3 2 
5 3 1 1 
5 2 2 1 
5 2 1 1 1 
5 1 1 1 1 1 
4 4 2 
4 4 1 1 
4 3 3 
4 3 2 1 
4 3 1 1 1 
4 2 2 2 
4 2 2 1 1 
4 2 1 1 1 1 
4 1 1 1 1 1 1 
3 3 3 1 
3 3 2 2 
3 3 2 1 1 
3 3 1 1 1 1 
3 2 2 2 1 
3 2 2 1 1 1 
3 2 1 1 1 1 1 
3 1 1 1 1 1 1 1 
2 2 2 2 2 
2 2 2 2 1 1 
2 2 2 1 1 1 1 
2 2 1 1 1 1 1 1 
2 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 
Możliwości: 42

15 
14 1 
13 2 
13 1 1 
12 3 
12 2 1 
12 1 1 1 
11 4 
11 3 1 
11 2 2 
11 2 1 1 
11 1 1 1 1 
10 5 
10 4 1 
10 3 2 
10 3 1 1 
10 2 2 1 
10 2 1 1 1 
10 1 1 1 1 1 
9 6 
9 5 1 
9 4 2 
9 4 1 1 
9 3 3 
9 3 2 1 
9 3 1 1 1 
9 2 2 2 
9 2 2 1 1 
9 2 1 1 1 1 
9 1 1 1 1 1 1 
8 7 
8 6 1 
8 5 2 
8 5 1 1 
8 4 3 
8 4 2 1 
8 4 1 1 1 
8 3 3 1 
8 3 2 2 
8 3 2 1 1 
8 3 1 1 1 1 
8 2 2 2 1 
8 2 2 1 1 1 
8 2 1 1 1 1 1 
8 1 1 1 1 1 1 1 
7 7 1 
7 6 2 
7 6 1 1 
7 5 3 
7 5 2 1 
7 5 1 1 1 
7 4 4 
7 4 3 1 
7 4 2 2 
7 4 2 1 1 
7 4 1 1 1 1 
7 3 3 2 
7 3 3 1 1 
7 3 2 2 1 
7 3 2 1 1 1 
7 3 1 1 1 1 1 
7 2 2 2 2 
7 2 2 2 1 1 
7 2 2 1 1 1 1 
7 2 1 1 1 1 1 1 
7 1 1 1 1 1 1 1 1 
6 6 3 
6 6 2 1 
6 6 1 1 1 
6 5 4 
6 5 3 1 
6 5 2 2 
6 5 2 1 1 
6 5 1 1 1 1 
6 4 4 1 
6 4 3 2 
6 4 3 1 1 
6 4 2 2 1 
6 4 2 1 1 1 
6 4 1 1 1 1 1 
6 3 3 3 
6 3 3 2 1 
6 3 3 1 1 1 
6 3 2 2 2 
6 3 2 2 1 1 
6 3 2 1 1 1 1 
6 3 1 1 1 1 1 1 
6 2 2 2 2 1 
6 2 2 2 1 1 1 
6 2 2 1 1 1 1 1 
6 2 1 1 1 1 1 1 1 
6 1 1 1 1 1 1 1 1 1 
5 5 5 
5 5 4 1 
5 5 3 2 
5 5 3 1 1 
5 5 2 2 1 
5 5 2 1 1 1 
5 5 1 1 1 1 1 
5 4 4 2 
5 4 4 1 1 
5 4 3 3 
5 4 3 2 1 
5 4 3 1 1 1 
5 4 2 2 2 
5 4 2 2 1 1 
5 4 2 1 1 1 1 
5 4 1 1 1 1 1 1 
5 3 3 3 1 
5 3 3 2 2 
5 3 3 2 1 1 
5 3 3 1 1 1 1 
5 3 2 2 2 1 
5 3 2 2 1 1 1 
5 3 2 1 1 1 1 1 
5 3 1 1 1 1 1 1 1 
5 2 2 2 2 2 
5 2 2 2 2 1 1 
5 2 2 2 1 1 1 1 
5 2 2 1 1 1 1 1 1 
5 2 1 1 1 1 1 1 1 1 
5 1 1 1 1 1 1 1 1 1 1 
4 4 4 3 
4 4 4 2 1 
4 4 4 1 1 1 
4 4 3 3 1 
4 4 3 2 2 
4 4 3 2 1 1 
4 4 3 1 1 1 1 
4 4 2 2 2 1 
4 4 2 2 1 1 1 
4 4 2 1 1 1 1 1 
4 4 1 1 1 1 1 1 1 
4 3 3 3 2 
4 3 3 3 1 1 
4 3 3 2 2 1 
4 3 3 2 1 1 1 
4 3 3 1 1 1 1 1 
4 3 2 2 2 2 
4 3 2 2 2 1 1 
4 3 2 2 1 1 1 1 
4 3 2 1 1 1 1 1 1 
4 3 1 1 1 1 1 1 1 1 
4 2 2 2 2 2 1 
4 2 2 2 2 1 1 1 
4 2 2 2 1 1 1 1 1 
4 2 2 1 1 1 1 1 1 1 
4 2 1 1 1 1 1 1 1 1 1 
4 1 1 1 1 1 1 1 1 1 1 1 
3 3 3 3 3 
3 3 3 3 2 1 
3 3 3 3 1 1 1 
3 3 3 2 2 2 
3 3 3 2 2 1 1 
3 3 3 2 1 1 1 1 
3 3 3 1 1 1 1 1 1 
3 3 2 2 2 2 1 
3 3 2 2 2 1 1 1 
3 3 2 2 1 1 1 1 1 
3 3 2 1 1 1 1 1 1 1 
3 3 1 1 1 1 1 1 1 1 1 
3 2 2 2 2 2 2 
3 2 2 2 2 2 1 1 
3 2 2 2 2 1 1 1 1 
3 2 2 2 1 1 1 1 1 1 
3 2 2 1 1 1 1 1 1 1 1 
3 2 1 1 1 1 1 1 1 1 1 1 
3 1 1 1 1 1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 1 
2 2 2 2 2 2 1 1 1 
2 2 2 2 2 1 1 1 1 1 
2 2 2 2 1 1 1 1 1 1 1 
2 2 2 1 1 1 1 1 1 1 1 1 
2 2 1 1 1 1 1 1 1 1 1 1 1 
2 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
Możliwości: 176