# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1175049 | FZ_Laabidi | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#include "molecules.h"
using namespace std;
vector<int> find_subset(int l, int u, vector<int> w) {
int n = w.size();
vector<pair<int, int>> in;
for (int i = 0; i < n; ++i) {
in.push_back(w[i], i);
}
sort(in.begin(), in.end());
long long sum = 0;
vector<int> res;
for (int i=0; i<n;++i) {
if (sum + in[i].first <= u) {
sum += in[i].first;
res.push_back(in[i].second);
if (sum >= l)
return res;
}
}
res.clear();
sum = 0;
for (int i=n-1;i>=0;--i) {
if (sum+in[i].first <= u) {
sum += in[i].first;
res.push_back(in[i].second);
if (sum >= l) {
return res;
}
}
}
return {};
}