#include <bits/stdc++.h>
using namespace std;
void f(vector<int>&v,vector<int>&ds,int idx, int sum, int k, int& cnt){
if(idx>=v.size() || sum==k){
if(sum==k)
{cnt++; return;}
return;
}
sum=sum+v[idx]; ds.push_back(v[idx]);
f(v,ds,idx+1,sum,k,cnt);
sum=sum-v[idx]; ds.pop_back();
f(v,ds,idx+1,sum,k,cnt);
}
int main() {
vector<int>v= {3,1,2};
vector<int>ds; int sum=0; int idx=0; int k=6; int cnt=0;
f(v,ds,idx,sum,k,cnt);
cout<<" count is "<<cnt<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgZih2ZWN0b3I8aW50PiZ2LHZlY3RvcjxpbnQ+JmRzLGludCBpZHgsIGludCBzdW0sIGludCBrLCBpbnQmIGNudCl7CglpZihpZHg+PXYuc2l6ZSgpIHx8IHN1bT09ayl7CgkJaWYoc3VtPT1rKQoJCXtjbnQrKzsgcmV0dXJuO30KCQlyZXR1cm47Cgl9CglzdW09c3VtK3ZbaWR4XTsgZHMucHVzaF9iYWNrKHZbaWR4XSk7CglmKHYsZHMsaWR4KzEsc3VtLGssY250KTsKCXN1bT1zdW0tdltpZHhdOyBkcy5wb3BfYmFjaygpOwoJZih2LGRzLGlkeCsxLHN1bSxrLGNudCk7Cn0KaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PnY9IHszLDEsMn07Cgl2ZWN0b3I8aW50PmRzOyBpbnQgc3VtPTA7IGludCBpZHg9MDsgaW50IGs9NjsgaW50IGNudD0wOwoJZih2LGRzLGlkeCxzdW0sayxjbnQpOwoJY291dDw8IiBjb3VudCBpcyAiPDxjbnQ8PGVuZGw7Cn0=