Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<vector>
- #include<algorithm>
- #include<set>
- using namespace std;
- set <vector <int>> A;
- void sumFinal(int* a, int sum, int index, vector<int>b){
- if(index <= -1){
- if(b.size() != 0 && sum == 0){
- sort(b.begin(), b.end());
- A.insert(b);
- // if(A.find(b) != A.end())
- for(int i = 0; i < b.size(); i++)
- cout<<b[i]<<" ";
- b.clear();
- cout<<endl;
- }
- if(b.size()!= 0)
- b.clear();
- return;
- }
- if(sum < 0)
- return;
- sumFinal(a, sum, index-1, b);
- b.push_back(a[index]);
- sumFinal(a, sum -a[index], index -1, b);
- return;
- }
- int main() {
- int n;
- cin>>n;
- int *a = new int[n];
- for(int i = 0; i < n; i++)
- cin>>a[i];
- int sum;
- cin>>sum;
- vector<int> b;
- sumFinal(a, sum, n-1, b);
- return 0;
- }
Add Comment
Please, Sign In to add comment