#include<iostream>
#include<map>
#include<vector>
using namespace std;
map<int, vector<int>> dp;
vector<int> howSum(int& target, vector<int>& nums, vector<int> temp){
if (target == 0) return temp;
if (target < 0) return {};
if (dp.find(target) != dp.end()) return dp[target];
for (int i=0;i<nums.size();i++){
dp[target]=howSum(target-nums[i],nums,temp.push_back(nums[i]));
if (dp[target]!={}) {return dp[target];}
}
return {};
}
int main(){
int n,target; cin>>n>>target; vector<int> nums(n);
for (int i=0;i<n;i++) cin>>nums[i];
vector<int> ans = howSum(target, nums, {});
if (ans.size()>0){
for(auto i:ans) cout<<i<<" ";
}
}
And it said i wrong the line "dp[target] = howSum(target-nums[i], nums,temp.push_back(nums[i]));" And it said "expected primary-expression before ‘{’ token"