Submission #472941

#TimeUsernameProblemLanguageResultExecution timeMemory
472941nadorbDetecting Molecules (IOI16_molecules)C++14
9 / 100
1 ms204 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> find_subset(int l, int u, vector<int> w) {
    vector<pair<int, int>> v(w.size());
    long long sum = 0, n = v.size();
    for(int i = 0; i < n; i++){
        v[i].first = w[i];
        v[i].second = i;
    }
    sort(v.begin(), v.end());
    int db = 0;
    for(int i = 0; i < n; i++){
        if(sum + v[i].first <= u){
            sum += v[i].first;
            db++;
        }
    }
    vector<int> ki;
    if(sum >= l){
        for(int i = 0; i < db; i++){
            ki.push_back(v[i].second);
        }
        return ki;
    }
    vector<int> mik;
    for(int i = 0; i < db; i++){
        mik.push_back(i);
    }
    for(int i = 0; i < min((n - 1) / 2, (long long)db); i++){
        sum += v[n - i - 1].first - v[i].first;
        mik[i] = n - i - 1;
        if(sum >= l){
            for(int i : mik){
                ki.push_back(v[i].second);
            }
            return ki;
        }
    }
    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...