| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1323650 | fahmid_rng | Detecting Molecules (IOI16_molecules) | C++20 | 39 ms | 6812 KiB |
#include<bits/stdc++.h>
#include "molecules.h"
using namespace std;
using ll=long long;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
int n=w.size(),L=-1,R=-2;
vector<pair<ll,int>> a(n);
vector<ll> pref(n+1);
for(int i=0;i<n;++i){
a[i]={w[i],i};
}
sort(a.begin(),a.end());
pref[0]=0;
for(int i=1;i<=n;++i){
pref[i]=pref[i-1]+a[i-1].first;
}
for(int left=0;left<n;++left){
if(a[left].first<=u && a[left].first>=l){L=left; R=left; break;}
int st=left, end=n-1;
while(end-st>1){
int mid=(st+end)/2;
if(pref[mid+1]-pref[left]>u) end=mid-1;
else if(pref[mid+1]-pref[left]<l) st=mid;
else {end=mid; break;}
}
if(end>=0 && pref[end+1]-pref[left]<=u && pref[end+1]-pref[left]>=l){L=left; R=end; break;}
}
vector<int> ans;
for(int i=L;i<=R;++i) ans.push_back(a[i].second);
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... | ||||
