Submission #655878

#TimeUsernameProblemLanguageResultExecution timeMemory
655878horiseunDetecting Molecules (IOI16_molecules)C++11
100 / 100
48 ms6180 KiB
#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>
#include "molecules.h"
using namespace std;

#define ll long long
#define f first
#define s second

vector<int> find_subset(int l, int u, vector<int> w) {
    vector<pair<int, int>> v;
    for (int i = 0; i < w.size(); i++) {
        v.push_back({w[i], i});
    }
    sort(v.begin(), v.end());
    int f = 0, b = 0;
    ll sum = v[0].f;
    vector<int> ans;
    while (f < v.size()) {
        if (l <= sum && sum <= u) {
            for (int i = b; i <= f; i++) {
                ans.push_back(v[i].s);
            }
            return ans;
        } else if (sum < l) {
            f++;
            sum += v[f].f;
        } else if (sum > u) {
            sum -= v[b].f;
            b++;
        }
    }
    return ans;
}

Compilation message (stderr)

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