#include #include using namespace std; string ans; bool solve(vector v,int idx, int target, int sum, string opts) { if(idx == v.size() - 1) { if(sum == target){ ans = opts; return true; } return false; } else { int nxt = idx + 1; bool plus = solve(v, nxt, target, sum + v[nxt],opts + "+"); bool minus = solve(v, nxt, target, sum - v[nxt], opts + "-"); bool mult = solve(v, nxt, target, sum * v[nxt], opts + "*"); bool div = solve(v, nxt, target, sum / v[nxt], opts + "/"); return plus || minus || mult || div; } } int main() { int n, target; cin >> n >> target; vector v(n); string opts = ""; for(int &x : v) { cin >> x; } sort(v.begin(), v.end()); do { if(solve(v, 0, target, v[0], opts)) { for(int i = 0; i < v.size(); i++) { if (i == v.size() - 1) { cout << v[i]; } else { cout << v[i] << " " << ans[i] << " "; } } cout << '\n'; } } while(next_permutation(v.begin(), v.end())); return 0; }