Submission #844774

#TimeUsernameProblemLanguageResultExecution timeMemory
844774AlphaMale06Detecting Molecules (IOI16_molecules)C++14
100 / 100
39 ms5696 KiB
#include <bits/stdc++.h>
#include "molecules.h"

using namespace std;
using ll = long long;
struct mol{
    int ind;
    int val;
};

bool cmp(mol A, mol B){
    return A.val<B.val;
}

vector<int> find_subset(int l, int u, std::vector<int> w) {
    int r=u;
    int n=w.size();
    mol a[n];
    for(int i=0; i< n; i++){
        a[i].ind=i;
        a[i].val=w[i];
    }
    sort(a, a+n, cmp);
    int p1=0;
    ll sum=0;
    for(int i=0; i< n; i++){
        sum+=a[i].val;
        if(sum>=l && sum<=r){
            vector<int> ret;
            for(int j=p1; j<=i; j++){
                ret.push_back(a[j].ind);
            }
            return ret;
        }
        else if(sum>r){
            sum-=a[p1].val;
            p1++;
            if(sum>=l && sum<=r){
                vector<int> ret;
                for(int j=p1; j<=i; j++){
                    ret.push_back(a[j].ind);
                }
                return ret;
            }
        }
    }
    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...