This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define F first
#define S second
#include "molecules.h"
using namespace std;
long long n,L,U;
pair < long long , int > p[200005];
vector < int > ANS;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
	
	n=w.size();
	int L=l,U=u;
	for (int i=1; i<=n; i++) {
		p[i].F=w[i-1];
		p[i].S=i;
	}
	
	sort(p+1,p+n+1);
	
	for (int i=1; i<=n; i++) 
		p[i].F+=p[i-1].F;
		
	for (int i=1; i<=n; i++) {
		int l=0,r=i,mid,ans=-1;
		
		while (l<=r) {
			mid=(l+r)/2;
			
			if (L<=p[i].F-p[mid].F) { ans=mid; l=mid+1; }
				else r=mid-1;
		}
		
		if (ans==-1) continue;
		if (L<=p[i].F-p[ans].F && p[i].F-p[ans].F<=U) {		
			for (int j=ans+1; j<=i; j++) 
				ANS.push_back(p[j].S-1);
			
			return ANS;
		}
	}
	
    return std::vector<int>(0);
}
| # | 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... |