#include <bits/stdc++.h>
using namespace std;
int count=0;
bool f(vector<int>&v,vector<int>&ds,int idx, int sum, int k){
if(idx>=(int)v.size() || sum==k){
if(sum==k) {
for(int i=0;i<ds.size();i++)
cout<<ds[i]<<" ";
return true;}
return false;
}
sum=sum+v[idx];
ds.push_back(v[idx]);
bool ans = f(v,ds,idx+1,sum,k);
if(ans==true)
return ans;
sum=sum-v[idx];
ds.pop_back();
ans = f(v,ds,idx+1,sum,k);
return ans;
}
int main() {
vector<int> v = {3, 1, 2};
vector<int> ds;
// vector<vector<int>> ans;
int sum=0;
cout<<f(v,ds,0,sum,3)<<endl;
// for (const auto& seq : ans) {
// for (int num : seq)
// cout << num << " ";
// cout << endl;
// }
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBjb3VudD0wOwpib29sIGYodmVjdG9yPGludD4mdix2ZWN0b3I8aW50PiZkcyxpbnQgaWR4LCBpbnQgc3VtLCBpbnQgayl7CglpZihpZHg+PShpbnQpdi5zaXplKCkgfHwgc3VtPT1rKXsKCQlpZihzdW09PWspIHsKCQkJZm9yKGludCBpPTA7aTxkcy5zaXplKCk7aSsrKQoJCQljb3V0PDxkc1tpXTw8IiAiOwoJCQlyZXR1cm4gdHJ1ZTt9CgkJcmV0dXJuIGZhbHNlOwoJfQoJc3VtPXN1bSt2W2lkeF07Cglkcy5wdXNoX2JhY2sodltpZHhdKTsKCWJvb2wgYW5zID0gZih2LGRzLGlkeCsxLHN1bSxrKTsKCWlmKGFucz09dHJ1ZSkKCXJldHVybiBhbnM7CglzdW09c3VtLXZbaWR4XTsKCWRzLnBvcF9iYWNrKCk7CglhbnMgPSBmKHYsZHMsaWR4KzEsc3VtLGspOwoJcmV0dXJuIGFuczsKfQppbnQgbWFpbigpIHsKCQl2ZWN0b3I8aW50PiB2ID0gezMsIDEsIDJ9OwogICAgdmVjdG9yPGludD4gZHM7CiAgICAvLyB2ZWN0b3I8dmVjdG9yPGludD4+IGFuczsKCWludCBzdW09MDsKICAgIGNvdXQ8PGYodixkcywwLHN1bSwzKTw8ZW5kbDsKIAogICAgLy8gZm9yIChjb25zdCBhdXRvJiBzZXEgOiBhbnMpIHsKICAgIC8vICAgICBmb3IgKGludCBudW0gOiBzZXEpCiAgICAvLyAgICAgICAgIGNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIC8vICAgICBjb3V0IDw8IGVuZGw7CiAgICAvLyB9Cn0=