#Comobination Sum Practice
void funct(int ind,int target,vector<int>& can,vector<vector<int>>&v,vector<int> st)
{
if(ind==can.size())
{
if(target==0)
{
v.push_back(st);
}
return;
}
if(can[ind]<=target)
{
st.push_back(can[ind]);
funct(ind,target-can[ind],can,v,st);
st.pop_back();
}
funct(ind+1,target,can,v,st);
}
vector<vector<int>> combinationSum(vector<int>& can, int target) {
//sort(can.begin(),can.end());
int sum=0;
vector<vector<int>> v;
vector<int> st;
funct(0,target,can,v,st);
return v;
}