#include <bits/stdc++.h>
using namespace std;
#include "molecules.h"
vector<int> find_subset(int l,int r,vector<int> A){
int n = A.size();
vector<int> I(n); iota(I.begin(),I.end(),0);
sort(I.begin(),I.end(),[&](int x,int y){ return A[x]<A[y]; });
vector<long long> B(1); for (int a:I) B.emplace_back(B.back()+A[a]);
if (B.back()<l) return {};
if (l<=B.back()&&B.back()<=r){
vector<int> R(n); iota(R.begin(),R.end(),0);
return R;
}
for (int i(0);i < n;++i){
int x = lower_bound(B.begin(),B.end(),B.back()-r+B[i])-B.begin();
if (x==B.size()) continue;
if (B.back()-B[x]+B[i]>=l){
vector<int> R;
for (int k(0);k < i;++k) R.emplace_back(I[k]);
for (int k(x);k < n;++k) R.emplace_back(I[k]);
return R;
}
}
return {};
}