| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 31813 | top34051 | Detecting Molecules (IOI16_molecules) | C++14 | 0 ms | 0 KiB | 
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;
#define maxn 200005
int m;
long long sum[maxn];
pair<int,int> p[maxn];
int find_subset(int l, int u, int* w, int n, int* result) {
    int i,j;
    for(i=0;i<n;i++) p[i] = {w[i],i};
    sort(&p[0],&p[n]);
    for(i=0,j=0;i<n;i++) {
        sum[i] = sum[i-1] + p[i].first;
        while(j<=i && sum[i]-sum[j-1]>u) j++;
        if(sum[i]-sum[j-1]>=l) {
            while(j<=i) {
                result[m++] = p[j].second;
                j++;
            }
            return m;
        }
    }
    return 0;
}
