Submission #63291

#TimeUsernameProblemLanguageResultExecution timeMemory
63291KHUSRAVDetecting Molecules (IOI16_molecules)C++14
100 / 100
164 ms34532 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std ;
vector<int> find_subset(int l, int u, vector<int> w) {
    vector<pair<long long , long long> > v ;
    for(int i = 0 ; i < w.size() ; i++)
        v.push_back({w[i] , i});
    sort(v.begin() , v.end());
    vector<int> ans ;
    set<pair<long long , long long> > se;
    long long s = 0 ;
    int t = -1;
    for(int i = 0 ; i < v.size() && s <= u; i++){
        s = s + v[i].first;
        t = i ;
    }
    if(s <= u)
        t ++ ;

    s = 0 ;
    if(t == 0)
        return vector<int>();
    for(int i = 0 ; i <= t - 1 ; i ++){
        se.insert(v[i]);
        s = s + v[i].first;
    }
    if(s >= l){
        for(auto it : se){
                ans.push_back(it.second);
        }
        return ans ;
    }
    for(int i = v.size() - 1 ; i >= t ; i -- ){
        s = s - se.begin()->first;
        s = s + v[i].first;
        se.erase(se.begin());
        se.insert({v[i].first , v[i].second});
        if(s >= l){
            for(auto it : se){
                ans.push_back(it.second);
            }
            return ans ;
        }
    }
    return vector<int>();
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:6:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0 ; i < w.size() ; i++)
                     ~~^~~~~~~~~~
molecules.cpp:13:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0 ; i < v.size() && s <= u; i++){
                     ~~^~~~~~~~~~
#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...