Submission #380454

#TimeUsernameProblemLanguageResultExecution timeMemory
380454Dan4LifeDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms364 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; vector<int> find_subset(int l, int r, vector<int> w) { int n = (int)w.size(), sum = 0, z=0; vector<pair<int,int> > v; vector<int> ans, x; for(auto u : w) v.push_back({u,z++}); sort(v.begin(),v.end()); for(int i = 0; i < n; i++) { int num = v[i].first, index = v[i].second; if(sum+num<=r)sum+=num, ans.push_back(index), x.push_back(num); else{ if(sum>=l) return ans; int MN = l-sum, MX = r-sum; for(int j = i; j < n; j++) { int num = v[j].first, index = v[j].second; //1 1 8 8 6 10 6 8 int pos = lower_bound(x.begin(),x.end(),num-MX)-x.begin(); if(pos!=x.size() and sum-x[pos]+num>=l and sum-x[pos]+num<=r){ ans.erase(ans.begin()+pos); ans.push_back(index); return ans; } } ans.clear(); return ans; } } return ans; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:23:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |                 if(pos!=x.size() and sum-x[pos]+num>=l and sum-x[pos]+num<=r){
      |                    ~~~^~~~~~~~~~
molecules.cpp:17:17: warning: unused variable 'MN' [-Wunused-variable]
   17 |             int MN = l-sum, MX = r-sum;
      |                 ^~
#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...