Submission #119226

#TimeUsernameProblemLanguageResultExecution timeMemory
119226patrikpavic2Detecting Molecules (IOI16_molecules)C++17
100 / 100
71 ms6016 KiB
#include "molecules.h"
#include <algorithm>
#include <vector>

#define PB push_back

using namespace std;

typedef long long ll;
typedef vector < int > vi;

vi W;

bool cmp(int i,int j){
    return W[i] < W[j];
}

vi find_subset(int l, int u, vi w) {
    W = w;
    ll cur = 0, j = 0, n = w.size(); vi p;
    for(int i = 0;i < n;i++) p.PB(i);
    sort(p.begin(), p.end(), cmp);
    for(int i = 0;i < n;i++){
        while(cur < l && j < n){
            cur += (ll)w[p[j++]];
        }
        if(cur >= (ll)l && cur <= (ll)u){
            vi sol;
            for(int k = i;k < j;k++)
                sol.PB(p[k]);
            return sol;
        }
        cur -= (ll)w[p[i]];
    }
    return std::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...