Submission #980762

#TimeUsernameProblemLanguageResultExecution timeMemory
980762NoMercyDetecting Molecules (IOI16_molecules)C++17
100 / 100
58 ms6320 KiB
#include "molecules.h"

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

vector<int> find_subset(int l, int u, vector<int> w) {
    vector<array<int , 2>> v;
    for (int i = 0;i < w.size();i ++) {
        v.push_back({w[i] , i});
    }
    sort(v.begin() , v.end());
    ll lo = 0 , hi = -1 , sum = 0;
    while (lo < v.size()) {
        if (hi + 1 < v.size() && sum < l) {
            sum += v[++ hi][0];
        } else if (sum > u) {
            sum -= v[lo ++][0];
        } else {
            break;
        }
    }
    vector<int> res;
    if (sum < l || sum > u) {
        return res;
    }
    for (int i = lo;i <= hi;i ++) {
        res.push_back(v[i][1]);
    }
    sort(res.begin() , res.end());
    return res;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:10:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for (int i = 0;i < w.size();i ++) {
      |                    ~~^~~~~~~~~~
molecules.cpp:15:15: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::array<int, 2> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     while (lo < v.size()) {
      |            ~~~^~~~~~~~~~
molecules.cpp:16:20: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::array<int, 2> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |         if (hi + 1 < v.size() && sum < l) {
      |             ~~~~~~~^~~~~~~~~~
#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...