fork(3) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main(int argc, char *argv[])
  5. {
  6. int n,x,i,suma,b,k,c;
  7. while(cin>>n) {
  8. cout<<endl;
  9. i=n;
  10. k=0;
  11.  
  12. for (i;i>0;) {
  13. int tab[i-1];
  14. c=-1;
  15. suma=0;
  16. x=i;
  17. for (x;x>0;) {
  18. if ((suma+x)<=n) {
  19. c++;
  20. //cout<<" s="<<suma<<" ";
  21. tab[c]=x;
  22. cout<<x<<" ";
  23. suma=suma+x;
  24. } else {
  25. x--;
  26. }
  27.  
  28. if ((suma==n)and(c<=n-x)and(c!=0)and(tab[1]!=1)) {
  29. cout<<endl;
  30. k++;
  31. suma=0;
  32. int a=0;
  33.  
  34. for (c;c>0;) {
  35. if (tab[c]!=1) {
  36. for (int d=0;d<c;d++) {
  37. cout<<tab[d]<<" ";
  38. suma=suma+tab[d];
  39. a++;
  40. }
  41. x=tab[c]-1;
  42. c=0;
  43. } else {
  44. c--;
  45. }
  46. }
  47. c=-1+a;
  48. }
  49. }
  50. cout<<endl;
  51. i--;
  52. k++;
  53. }
  54. cout<<"Ilosc kominacji "<<k<<endl;
  55. }
  56. return 0;
  57. }
Runtime error #stdin #stdout 0s 2856KB
stdin
3 4 6 10 15
stdout
3 
2 1 
1 1 1 
Ilosc kominacji 3

4 
3 1 
2 2 
2 1 1 
1 1 1 1 
Ilosc kominacji 5

6 
5 1 
4 2 
4 1 1 
3 3 
3 2 1 
3 1 1 1 
2 2 2 
2 2 1 1 
2 1 1 1 1 
1 1 1 1 1 1 
Ilosc kominacji 11

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