#include <bits/stdc++.h>
using namespace std;
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]<<" ";
cout<<endl;
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 true;
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; int sum=0; int idx=0; int k=6;
cout<<f(v,ds,idx,sum,k)<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgZih2ZWN0b3I8aW50PiZ2LCB2ZWN0b3I8aW50PiZkcyxpbnQgaWR4LCBpbnQgc3VtLCBpbnQgayl7CglpZihpZHg+PShpbnQpdi5zaXplKCkgfHwgc3VtPT1rKXsKCQlpZihzdW09PWspewoJCQlmb3IoaW50IGk9MDtpPGRzLnNpemUoKTtpKyspCgkJCWNvdXQ8PGRzW2ldPDwiICI7CgkJCWNvdXQ8PGVuZGw7CgkJCXJldHVybiB0cnVlOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CglzdW09c3VtK3ZbaWR4XTsKCWRzLnB1c2hfYmFjayh2W2lkeF0pOwoJYm9vbCBhbnMgPSBmKHYsZHMsaWR4KzEsc3VtLGspOwoJaWYoYW5zPT10cnVlKQoJcmV0dXJuIHRydWU7CglzdW0gPSBzdW0tdltpZHhdOwoJZHMucG9wX2JhY2soKTsKCWFucyA9IGYodixkcyxpZHgrMSxzdW0sayk7CglyZXR1cm4gYW5zOwp9CmludCBtYWluKCkgewoJdmVjdG9yPGludD52PSB7MywxLDJ9OwoJdmVjdG9yPGludD5kczsgaW50IHN1bT0wOyBpbnQgaWR4PTA7IGludCBrPTY7Cgljb3V0PDxmKHYsZHMsaWR4LHN1bSxrKTw8ZW5kbDsKfQ==