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 "molecules.h"
#include <bits/stdc++.h>
using namespace std;
 
vector<int> find_subset(int l, int u, vector<int> w) {
	vector<int> ans;
	int ss=w.size();
	vector< pair<long long,int> > orig(ss);
	for (int i=0; i<ss; i++) orig[i].first=(long long)w[i], orig[i].second=i;
	sort(orig.begin(), orig.end());
	if ((long long)u<orig[0].first) return ans;
	int left=0, right=0;
	long long sum=orig[0].first;
	while(1){
		if (sum>(long long)u){
			sum-=orig[left].first;
			left++;
			if (left>right) break;
		}else if (sum<(long long)l){
			right++;
			if (right<ss) sum+=orig[right].first;
			else break;
		}else{
			for (int i=left; i<=right; i++) ans.push_back(orig[i].second);
			break;
		}
	}
	
    return ans;
}
| # | 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... |