# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
107195 | popovicirobert | Detecting Molecules (IOI16_molecules) | C++14 | 187 ms | 15196 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "molecules.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
vector<int> find_subset(int l, int u, vector<int> w) {
vector < pair <int, int> > arr(w.size());
for(int i = 0; i < w.size(); i++) {
arr[i] = {w[i], i};
}
sort(arr.begin(), arr.end());
multiset <ll> mst;
mst.insert(0);
ll sum = 0;
ll sl, sr = -1;
for(auto it : arr) {
sum += it.first;
auto cur = mst.lower_bound(sum - u);
if(cur != mst.end() && *cur <= sum - l) {
sl = *cur;
sr = sum;
break;
}
mst.insert(sum);
}
vector <int> sol;
if(sr == -1) {
return sol;
}
sum = 0;
for(int i = 0; i < arr.size(); i++) {
sum += arr[i].first;
if(sum > sl) {
sol.push_back(arr[i].second);
}
if(sum == sr) {
break;
}
}
return sol;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |