# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1204622 | loiiii12358 | Detecting Molecules (IOI16_molecules) | C++20 | 36 ms | 6172 KiB |
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
std::vector<int32_t> find_subset(int32_t l, int32_t u, std::vector<int32_t> w) {
vector<pair<int,int>> W;
vector<int32_t> ans,ans2;
for(int i=0;i<w.size();i++){
W.push_back({w[i],i});
}
sort(W.begin(),W.end());
int mi=0,ma=0,pl=0,pr=W.size()-1;
for(int i=0;i<W.size();i++){
mi+=W[i].first;
ma+=W[W.size()-1-i].first;
if(ma>=l&&mi<=u){
pl=i;
while(pl>=0&&mi+W[pr].first-W[pl].first<=u){
ans.push_back(W[pr].second);
mi+=W[pr--].first-W[pl--].first;
}
for(int j=0;j<pl;j++){
ans.push_back(W[j].second);
}
while(mi<l){
mi+=W[pl+1].first-W[pl].first;
pl++;
}
if(pl>=0){
ans.push_back(W[pl].second);
}
return ans;
}
}
return {};
}
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... |