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>
#include "molecules.h"
//#include "grader.cpp"
using namespace std;
typedef long long ll;
const int MX=2e5+9;
bool dp[MX];
int last[MX];
pair<int,int>a[MX];
vector<int> ans(int l,int r){
    vector<int>ret;
    for(int i=l;i<=r;i++)ret.push_back(a[i].second);
    return ret;
}
vector<int> find_subset(int l, int u, vector<int> w) {
    int n=w.size();
    for(int i=0;i<n;i++)a[i].first=w[i],a[i].second=i;
    sort(a,a+n);
    int p1=0,p2=0;
    ll sum=0;
    while(p1<n&&p2<n){
        while(sum<l&&p2<n){
            sum+=a[p2++].first;
        }
//        cout<<p1<<" "<<p2<<" "<<sum<<endl;
        if(sum>=l&&sum<=u){
            return ans(p1,p2-1);
        }
        while(sum>u&&p1<n){
            sum-=a[p1++].first;
        }
        if(sum>=l&&sum<=u){
            return ans(p1,p2-1);
        }
    }
    vector<int>anss;
    return anss;
}
| # | 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... |