Submission #290792

#TimeUsernameProblemLanguageResultExecution timeMemory
290792REALITYNBDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms256 KiB
#include <bits/stdc++.h> 
#define ll long long 
#define all(a) a.begin(),a.end() 
#define mp make_pair
#define F first 
#define S second 
#define pii pair<int,int> 
using namespace std; 
vector<int> find_subset(int l , int r , vector<int> a){
    int n = a.size() ; 
    vector<pii> w(n) ; 
    int sum = 0 ; 
    for(int i=0;i<n;i++){
        w[i].F=a[i] ; 
        sum+=a[i] ; 
        w[i].S =i ; 
    }
    sort(all(w)) ; 
    vector<int> poop ; 
    //for(int i=1;i<n;i++) w[i].F+=w[i-1].F ; 
    if(sum<l) return poop ; 
    if(w[0].F>r) return poop ; 
    int L = 0  , R= n-1 ; 
    while(1){
        if(sum-w[R].F>r) sum-=w[R].F ,--R ; 
        else{
            sum-=w[L].F ; 
            ++L ; 
        }
        if(L>R)  return poop ; 
        if(sum>=l&&r>=sum){
            vector<int> ans; 
            for(int i=L;i<=R;i++) ans.push_back(w[i].S) ; 
            return ans ;
        }
    }
//    vector<int> poop ; 
    return poop ; 
}
#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...