# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1180593 | TudorMa | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#define fi first
#define sc second
#define pb push_back
typedef long long ll;
typedef double db;
typedef pair<int, int> pii;
vector<int> find_subset(int l, int u, vector<int> w) {
ll s = 0;
vector<pii> dece;
for(int i=0; i<w.size(); i++)
dece.pb({w[i], i});
sort(dece.begin(), dece.end());
int pl = 0, pr = -1;
while(pl < dece.size()) {
while(pr < int(dece.size()) - 1 && s < l)
s += dece[++pr].fi;
if(s >= l && s <= u) {
vector<int> ans;
for(int i=pl; i<=pr; i++)
ans.pb(dece[i].sc);
sort(ans.begin(), ans.end());
return ans;
}
s -= dece[pl++].fi;
}
vector<int> ans;
return ans;
}