Submission #1323036

#TimeUsernameProblemLanguageResultExecution timeMemory
1323036aaaaaaaaDetecting Molecules (IOI16_molecules)C++20
100 / 100
38 ms5276 KiB
#include <bits/stdc++.h>
using namespace std;

#define all(v) v.begin(), v.end()
#define ll long long
#define pb push_back
#define fi first
#define se second

vector<int> find_subset(int L,int R,vector<int> w){
    int n=w.size();
    vector<pair<int,int>> vec(n+1);
    vector<ll> pref(n+1,0);
    for(int i=1;i<=n;++i){
        vec[i]={w[i-1],i};
    }
    sort(all(vec));
    for(ll i=1;i<=n;++i) pref[i]=pref[i-1]+vec[i].fi;
    vector<int> ans;
    for(int i=1;i<=n;++i){
        int st=1,en=i;
        while(st<=en){
            int mid=st+(en-st)/2;
            if((pref[i]-pref[mid-1])<L){
                en=mid-1;
            }else if((pref[i]-pref[mid-1])>R){
                st=mid+1;
            }else{
                for(int j=mid;j<=i;++j){
                    ans.pb(vec[j].se-1);
                }
                return ans;
            }
        }
    }
    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...