Submission #297151

#TimeUsernameProblemLanguageResultExecution timeMemory
297151jeroenodbDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms416 KiB
#include "molecules.h"
#include <algorithm>
using namespace std;

struct we{
    int w, id;
    bool operator<(const we& o) {
        return w<o.w;
    }
};

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int n = w.size();
    vector<we> mw;
    mw.reserve(n); for(int i=0;i<n;++i)  mw.push_back({w[i],i});
    sort(mw.begin(),mw.end());
    
    long long sum=0;
    int i;
    for(i=0;i<n;++i) {
        sum+=mw[i].w;
        if(sum>=l) break;
    }
    if(i==n) return vector<int>(0);
    sum-=mw[i].w;
    for(int j=0;n-1-j>=i;++j) {
        sum-=mw[j].w;
        sum+=mw[n-1-j].w;
        if(sum>=l) {
            vector<int> ans;
            for(int k=j+1;k<i;++k) {
                ans.push_back(mw[k].id);
            }
            for(int k=n-1-j;k<n;++k) {
                ans.push_back(mw[k].id);
            }
            return ans;
        }
    }
    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...