Submission #778179

#TimeUsernameProblemLanguageResultExecution timeMemory
778179vjudge1Detecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms228 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
#define sp " "
#define endl "\n"
#define pb push_back
#define pii pair<int, int>
#define st first
#define nd second
#define ll long long

vector<int> find_subset(int l, int u, vector<int> w){
    vector<pii> v;
    int n = w.size();


    vector<int> ans, vis(n, 0), zero;
   
    ll sum = 0;
 
    for (int i = 0; i < n; i++){
        v.pb({w[i], i});
    }
    sort(v.begin(), v.end());
    int it = n - 1;
    while(sum <= u && it >= 0){
        sum += v[it].st;
        vis[it] = 1;
        if (sum <= u && sum >= l){
            for (int i = 0; i < n; i++){
                if (vis[i]) ans.pb(v[i].nd);
            }
            return ans;
        }
        it--;
    }
    return ans;
    //cout<<sum<<endl;
    int i = 0, j = n - 1;
    while(sum > u && i <= it && j > it){
        vis[j] = 0, vis[i] = 1;
        sum += v[i].st - v[j].st;
        i++, j--;
        //cout<<sum<<endl;
    }

    if (sum <= u && sum >= l){
        for (int i = 0; i < n; i++){
            if (vis[i]) ans.pb(v[i].nd);
        }
    }
    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...