Submission #109359

#TimeUsernameProblemLanguageResultExecution timeMemory
109359dantoh000Detecting Molecules (IOI16_molecules)C++14
100 / 100
90 ms6252 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<int> ans;
    ans.clear();
    vector<pair<int,int> > v;
    v.clear();
    long long all = 0;
    for (int i = 0; i < w.size(); i++){
        v.push_back(make_pair(w[i],i));
        all += w[i];
    }
    sort(v.begin(),v.end());
    sort(w.begin(),w.end());
    if (w[0] > u || all < (long long)l){
        return ans;
    }
    int s = 0, e = 0;
    long long sum = 0;
    while (s <= n && e <= n && (sum > u || sum < l)){
        if (sum > u){
            sum -= w[s++];
        }
        else{
            sum += w[e++];
        }
    }
    if (sum > u || sum < l) return ans;
    //printf("%d\n",sum);
    for (int i = s; i < e; i++){
        ans.push_back(v[i].second);
    }
    return ans;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:12:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     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...