aboutsummaryrefslogtreecommitdiff
path: root/codeforces/recursionTest
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2022-11-05 01:28:02 +0200
committeromagdy7 <omar.professional8777@gmail.com>2022-11-05 01:28:02 +0200
commitc52b36c6a37fdb1d1de146d3939cb42e2c691f44 (patch)
treeb13bbc546bf9505c875dde5d26424d39d23054c9 /codeforces/recursionTest
parentb79a55ceee2f4532ef6621f9d86c6c61543ce6c9 (diff)
downloadcompetitive-programming-c52b36c6a37fdb1d1de146d3939cb42e2c691f44.tar.xz
competitive-programming-c52b36c6a37fdb1d1de146d3939cb42e2c691f44.zip
Solved 6 problem in filtrationContest and restructured the repo
Diffstat (limited to 'codeforces/recursionTest')
-rw-r--r--codeforces/recursionTest/recursionTest.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/codeforces/recursionTest/recursionTest.cpp b/codeforces/recursionTest/recursionTest.cpp
new file mode 100644
index 0000000..91e9db8
--- /dev/null
+++ b/codeforces/recursionTest/recursionTest.cpp
@@ -0,0 +1,51 @@
+#include <algorithm>
+#include<bits/stdc++.h>
+
+using namespace std;
+
+string ans;
+
+bool solve(vector<int> 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<int> 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;
+}