Submission #409607

#TimeUsernameProblemLanguageResultExecution timeMemory
409607pliamDetecting Molecules (IOI16_molecules)C++14
100 / 100
58 ms8216 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    vector<int> res;
    vector<pair<ll,int>> w_sort;
    int N=w.size();
    for(int i=0;i<N;i++){
        w_sort.push_back({w[i],i});
    }
    sort(w_sort.begin(),w_sort.end());
    ll a=w_sort[0].first,b=w_sort[N-1].first;
    for(int L=1;L<=N;L++,a+=w_sort[L-1].first,b+=w_sort[N-L].first){
        if(a<=u&&b>=l){
            ll sum=a;
            for(int start=0;start<=N-L;start++,sum+=(w_sort[start+L-1].first-w_sort[start-1].first)){
                if(sum>=l&&sum<=u){
                    for(int i=start;i<start+L;i++){
                        res.push_back(w_sort[i].second);
                    }
                    return res;
                }
            }            
        }
    }
    return std::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...