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