# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1229354 | diana | Detecting Molecules (IOI16_molecules) | C++17 | 190 ms | 12144 KiB |
#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)
{
int n = w.size();
priority_queue<int> pq, used;
for(int i=0; i<n; i++)
pq.push(w[i]);
map<int, int> m;
ll sum = 0;
while(!pq.empty())
{
while(sum < l && !pq.empty())
{
sum += pq.top();
m[pq.top()]++;
used.push(pq.top());
pq.pop();
}
if(l <= sum && sum <= u)
break;
while(u < sum && !used.empty())
{
sum -= used.top();
m[used.top()]--;
used.pop();
}
}
vector<int> ans;
for(int i=0; i<n; i++)
{
if(m[w[i]] > 0)
ans.push_back(i);
m[w[i]]--;
}
if(sum < l || u < sum)
ans.clear();
return ans;
}
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... |