Submission #472834

#TimeUsernameProblemLanguageResultExecution timeMemory
472834Valaki2Detecting Molecules (IOI16_molecules)C++14
100 / 100
64 ms7136 KiB
#include "molecules.h"

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define left left123
#define riht right123
#define fi first
#define se second

vector<int> find_subset(int l, int u, vector<int> w) {
    int n = w.size();
    ll mini = l, maxi = u;
    vector<pair<ll, int> > v(n);
    for(int i = 0; i < n; ++i) {
        v[i].fi = w[i];
        v[i].se = i;
    }
    sort(v.begin(), v.end());
    ll left = 0, right = 0;
    ll cur_sum = 0;
    while(left < n) {
        while(right < n && cur_sum + v[right].fi <= maxi) {
            cur_sum += v[right].fi;
            ++right;
        }
        if(cur_sum >= mini) {
            vector<int> result;
            for(int i = left; i < right; ++i) result.push_back(v[i].se);
            return result;
        }
        cur_sum -= v[left].fi;
        ++left;
    }
    return vector<int> (0);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...