Submission #1084995

#TimeUsernameProblemLanguageResultExecution timeMemory
1084995nickolasarapidisDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms436 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> find_subset(int l, int u, vector<int> w){
    int N = w.size();
    
    vector<pair<int, int>> W(N);
    
    for(int i = 0; i < N; i++){
        W[i] = make_pair(w[i], i);    
    }
    
    vector<int> ans;
    
    int sum = 0;
    
    for(int i = 0; i < N; i++){
        sum += W[i].first;
    }
    
    if(sum >= l and sum <= u){
        for(int i = 0; i < N; i++){
            ans.push_back(i);
        }
        
        return ans;
    }
    
    if(sum < l){
        return ans;
    }
    
    sort(W.begin(), W.end());
    
    bool found = false;
    
    set<int> s;
    
    for(int i = 0; i < N; i++){
        sum -= W[i].first;
        s.insert(W[i].second);
        if(sum >= l and sum <= u){
            found = true;
            break;
        }
    }
    
    if(found == false) return {};
    
    for(int i = 0; i < N; i++){
        if(s.count(W[i].second) == 0){
            ans.push_back(W[i].second);
        }
    }
    
    return ans;
}
#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...