fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void helper(vector<bool>&vis,vector<int>&coins,string asf,int tar){
  4. if(tar == 0){
  5. cout<<asf<<endl;
  6. return;
  7. }
  8.  
  9. if(tar < 0)return;
  10.  
  11. for(int i = 0;i<coins.size();i++){
  12. if(vis[i]==false){
  13. vis[i]=true;
  14. helper(vis,coins,asf+to_string(coins[i])+",",tar-coins[i]);
  15. vis[i]=false;
  16. }
  17. }
  18. }
  19. int main() {
  20. int n,tar;
  21. cin>>n>>tar;
  22. vector<int>coins(n);
  23. for(int i = 0 ;i<n ;i++){
  24. cin>>coins[i];
  25. }
  26. vector<bool>vis(n);
  27.  
  28. helper(vis,coins,"",tar);
  29. return 0;
  30. }
Success #stdin #stdout 0s 5308KB
stdin
5 10
2 4 6 5 3
stdout
2,5,3,
2,3,5,
4,6,
6,4,
5,2,3,
5,3,2,
3,2,5,
3,5,2,