| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1307428 | the_commando_x | Detecting Molecules (IOI16_molecules) | C++17 | 0 ms | 0 KiB |
std::vector<int> find_subset(int x, int y, std::vector<int> w)
{
int n = w.size();
std::vector<std::pair<int, int>> a(n);
for (int i = 0; i < n; ++i)
a[i] = {w[i], i};
std::sort(a.begin(), a.end());
long long sum = 0;
int l = 0, r = 0;
while (r < n)
{
sum += a[r].first;
while (sum > y && l <= r)
sum -= a[l++].first;
if (sum >= x && sum <= y)
{
std::vector<int> ans;
for (int i = l; i <= r; ++i)
ans.push_back(a[i].second);
return ans;
}
++r;
}
return std::vector<int>(0);
}
