Submission #337340

#TimeUsernameProblemLanguageResultExecution timeMemory
337340aanjiDetecting Molecules (IOI16_molecules)C++17
100 / 100
58 ms5740 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
vector<int> W;

vector<int> find_subset(int l, int r, vector<int> w) {
    vector<int> x(w.size()); W = w;
    iota(x.begin(), x.end(), 0);
    sort(x.begin(), x.end(), [](int a, int b) {
        return W[a] < W[b];
    });
    ll a = 0, b = -1, s = 0;
    while (true) {
        if (s < l) {
            if (b == w.size() - 1) {
                return {};
            }
            s += w[x[++b]];
        }
        else if (s > r) {
            s -= w[x[a++]];
        }
        else {
            vector<int> k;
            for (int i = a; i <= b; i++) {
                k.push_back(x[i]);
            }
            return k;
        }
    }
    return {};
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:17:19: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |             if (b == w.size() - 1) {
      |                 ~~^~~~~~~~~~~~~~~
#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...