fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MaxN = 65;
  4. long long n;
  5. long long a[MaxN];
  6. void backtrack(long long pos, long long sum)
  7. {
  8. if(sum==n)
  9. {
  10. for (long long i=1; i<=pos-1; i++)
  11. {
  12. cout << a[i] << " ";
  13. }
  14. cout << "\n";
  15. return ;
  16. }
  17. for (long long i=max(a[pos-1],1ll); i<=n-sum; i++)
  18. {
  19. if((i!= n-sum && (pos-1)%2!=0) || ((pos-1)%2==0))
  20. {
  21. a[pos]=i;
  22. backtrack(pos+1,sum+i);
  23. }
  24. }
  25. }
  26. int main()
  27. {
  28. ios_base::sync_with_stdio(0);
  29. cin.tie(0);
  30. cin >> n;
  31. backtrack(1,0);
  32. }
  33.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout