| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1299899 | tuncay_pasha | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#include "molecules.h"
#include "bits/stdc++.h"
#define int int64_t
#define vi vector<int>
#define vvi vector<vi>
#define pii pair<int, int>
using namespace std;
vector<int> find_subset(int l, int u, vi w) {
vector<pii> v;
for (int i = 0; i < w.size(); ++i) {
v.push_back({w[i], i});
}
sort (v.begin(), v.end());
int lp = 0, rp = 0, cur = w[0];
while (lp < v.size() && rp < v.size()) {
if (l <= cur && cur <= u) {
vi ans;
for (int i = lp; i <= rp; ++i) {
ans.push_back(i);
}
return ans;
}
else if (cur < l) {
if (rp + 1 >= v.size()) {
break;
}
++rp, cur += v[rp].first;
}
else {
if (lp + 1 > rp) {
break;
}
cur -= v[lp].first, ++lp;
}
}
return {};
}
