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...