# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1262274 | alexiah | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#include "molecules.h"
#include <vector>
using namespace std;
typedef vector <int> vi;
vi act , ans;
int sum = 0;
bool si = false;
void search(int x, vi& w, int l, int u) {
if (si) return;
if(sum > u) return;
if (l <= sum && sum <= u) {
ans = act;
si = true;
}
if (x == w.size()) return;
search(x+1, w, l, u);
act.push_back(x);
sum += w[x];
search(x+1, w, l, u);
act.pop_back();
sum -= w[x];
}
vi find_subset(int l, int u, vi& w) {
search(0, w, l, u);
return ans;
}