Submission #774319

#TimeUsernameProblemLanguageResultExecution timeMemory
774319shezittDetecting Molecules (IOI16_molecules)C++14
100 / 100
38 ms6176 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define F first
#define S second
#define dbg(x) cout << #x << ": " << x << endl;

vector<int> find_subset(int l, int u, vector<int> w) {
    int n = (int) w.size();
    vector<pair<int,int>> a;
    for(int i=0; i<n; ++i){
        a.emplace_back(w[i], i);
    }
    sort(a.begin(), a.end());

    ll sum = 0;
    int left = 0;
    int right;
    for(right=0; right<n; ++right){
        sum += a[right].F;
        while(sum > u){
            if(left == right){
                return vector<int>(0);
            }
            sum -= a[left].F;
            left++;
        }
        if(sum >= l){
            // ans found
            vector<int> ans;
            for(int i=left; i<=right; ++i){
                ans.push_back(a[i].S);
            }
            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...