제출 #1037956

#제출 시각아이디문제언어결과실행 시간메모리
1037956vjudge1Detecting Molecules (IOI16_molecules)C++17
100 / 100
37 ms4792 KiB
#include "molecules.h"

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

using lint=int64_t;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    lint cursum=0;
    int n=w.size();
    int p[n];
    iota(p,p+n,0);
    sort(p,p+n,[&](int i,int j)->bool {
        return w[i]<w[j];
    });
    int left=n;
    deque<int>ans;
    while(0<left&&cursum<l){
        cursum+=w[p[--left]];
        ans.push_back(p[left]);
    }
    if(cursum<l){
        return vector<int>(0);
    }
    while(0<left&&u<cursum){
        cursum-=w[ans.front()];
        ans.pop_front();
        cursum+=w[p[--left]];
        ans.push_back(p[left]);
    }
    if(u<cursum){
        return vector<int>(0);
    }
    return vector<int>(ans.begin(),ans.end());
}
#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...