# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1278323 | coderg300711 | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> find_subset(int x, int y, vector<int> w) {
vector <pair<int,int>> b;
int n = w.size();
for(int i=0;i<n;i++)b.push_back({w[i],i});
sort(b.begin(),b.end());
vector <int> ans;
int sum=w[0],l=0,r=0;
while(l<n && r<n){
if(x<=sum && sum<=y){
int res=0;
for(int i=l;i<=r;i++){
ans.push_back(b[i].ss);
res+=b[i].first;
}
return ans;
}else if(sum<=x && r<n){
r++;
sum+=b[r].first;
}else if(sum>=y && l<r){
sum-=b[l].first;
l++;
}else return ans;
}
return ans;
}