Submission #1323650

#TimeUsernameProblemLanguageResultExecution timeMemory
1323650fahmid_rngDetecting Molecules (IOI16_molecules)C++20
100 / 100
39 ms6812 KiB
#include<bits/stdc++.h>
#include "molecules.h"
using namespace std;
using ll=long long;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int n=w.size(),L=-1,R=-2;
    vector<pair<ll,int>> a(n);
    vector<ll> pref(n+1);
    for(int i=0;i<n;++i){
        a[i]={w[i],i};
    }
    sort(a.begin(),a.end());
    pref[0]=0;
    for(int i=1;i<=n;++i){
        pref[i]=pref[i-1]+a[i-1].first;
    }
    for(int left=0;left<n;++left){
        if(a[left].first<=u && a[left].first>=l){L=left; R=left; break;}
        int st=left, end=n-1;
        while(end-st>1){
            int mid=(st+end)/2;
            if(pref[mid+1]-pref[left]>u) end=mid-1;
            else if(pref[mid+1]-pref[left]<l) st=mid;
            else {end=mid; break;}
        }
        if(end>=0 && pref[end+1]-pref[left]<=u && pref[end+1]-pref[left]>=l){L=left; R=end; break;}
    }
    vector<int> ans;
    for(int i=L;i<=R;++i) ans.push_back(a[i].second);
    return ans;
}

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...