Submission #539169

#TimeUsernameProblemLanguageResultExecution timeMemory
539169astoriaDetecting Molecules (IOI16_molecules)C++14
100 / 100
71 ms6184 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> find_subset(int l, int u, vector<int> w) {
    int N = w.size();
    vector<pair<int,int> > wni;
    for (int i=0; i<N; i++){
        wni.push_back(make_pair(w[i],i));
    }
    sort(wni.begin(), wni.end());
    long long sum = 0;
    int leftbound=0;
    vector<int> finalelements;
    for (int i=0; i<w.size(); i++){
        sum += wni[i].first;
        if (sum >= l && sum <= u){
            for (int j=leftbound; j<=i; j++){
                finalelements.push_back(wni[j].second);
            }
            return finalelements;
        }
        if (sum > u){
            sum -= wni[leftbound].first;
            leftbound++;
            if (sum>=l && sum<=u){
                for (int j=leftbound; j<=i; j++){
                    finalelements.push_back(wni[j].second);
                }
                return finalelements;
            }
        }
    }
    
    return finalelements;
}

Compilation message (stderr)

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