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"
using namespace std;
#define F first
#define S second
#define FOR(i,a,b) for (auto i = (a); i <= (b); ++i)
#define NFOR(i,a,b) for(auto i = (a); i >= (b); --i)
#define all(x) (x).begin(), (x).end()
#define sz(x) int(x.size())
#define mp(i,a) make_pair(i,a)
#define pb(a) push_back(a)
#define bit(x,b) (x&(1LL<<b))
 
typedef long long int lli;
typedef pair <lli,lli> ii;
typedef pair <ii,lli> iii;
typedef vector <lli> vi;
 
vector<int> find_subset(int l,int r,vector<int> arr1)
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
    lli n=arr1.size(),l1=0,r1=0;
    vector<ii> arr(n);
    for(lli i=0;i<n;++i)
    {
      arr[i].F=arr1[i];
      arr[i].S=i;
    }
    sort(all(arr));
    vector<ii> p(n+1);
    p[0]=mp(0,0); 
    for(lli i=1;i<=n;++i)
    {
      p[i]=mp(p[i-1].F+arr[i-1].F,i);
    }
    for(lli i=0;i<n;++i)
    {
      auto it = lower_bound(all(p),mp(p[i].F+l,0*1LL));
      if(it!=p.end()&&(*it).F-p[i].F>=l&&(*it).F-p[i].F<=r)
      {
        l1=p[i].S;
        r1=(*it).S;
        break;
      }
    }
    l1--;
    r1--;
    vector<int> v;
        for(lli i=l1+1;i<=r1;++i)
      v.pb(arr[i].S);
  return(v);
}
| # | 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... |