Submission #889156

#TimeUsernameProblemLanguageResultExecution timeMemory
889156Muhammad_AneeqDetecting Molecules (IOI16_molecules)C++17
69 / 100
56 ms4388 KiB
#include <vector> #include <set> #include <algorithm> #include <map> using namespace std; vector<int> find_subset(int l,int u,vector<int>w) { long long sum=0; multiset<int>ind; vector<int>f=w; for (auto i:f) sum+=i; if (sum<l) return {}; sum=0; sort(begin(w),end(w)); multiset<int>s; int pre=0; for (int i=0;i<w.size();i++) { sum+=w[i]; s.insert(sum); ind.insert(i); if (sum<l) continue; if (sum>=l&&sum<=u) break; auto z=s.upper_bound(sum-l); if (z==s.begin()) continue; z--; auto g=begin(s); while (*g!=*z) { s.erase(s.find(*begin(s))); ind.erase(ind.find(*begin(ind))); g=begin(s); } pre=*begin(s); s.erase(s.find(*begin(s))); ind.erase(ind.find(*begin(ind))); if (sum-pre>=l&&sum-pre<=u) break; } if (s.size()==0||*(--end(s))<l+pre||*(--end(s))>u+pre) return {}; vector<int>ans; map<int,vector<int>>d; for (int i=0;i<f.size();i++) d[f[i]].push_back(i); for (auto i:ind) { ans.push_back(d[w[i]].back()); d[w[i]].pop_back(); } return ans; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:20:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |  for (int i=0;i<w.size();i++)
      |               ~^~~~~~~~~
molecules.cpp:50:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |  for (int i=0;i<f.size();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...