#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) {
int n = w.size(), mn = w[0];
ll sum = 0;
vector<pair<int, int>> a(n);
for (int i = 0; i < n; i++) {
a[i].first = w[i];
a[i].second = i;
if (w[i] >= l and w[i] <= u) {
return {i};
}
}
sort(a.begin(), a.end());
vector<ll> psum(n, 0);
for (int i = 0; i < n; i++) {
sum += a[i].first;
psum[i] = sum;
}
if (sum < l or w[0] > u) return vector<int>(0);
vector<int> ans;
for (int i = 0; i < n; i++) {
int ind = lower_bound(psum.begin(), psum.begin() + i, psum[i] - l) - psum.begin();
cout << psum[i] << " " << ind << '\n';
if (ind < i and psum[i] - psum[ind] >= l and psum[i] - psum[ind] <= u) {
for (int j = ind + 1; j <= i; j++) {
ans.push_back(a[j - 1].second);
}
break;
}
}
return ans;
}
/*int main() {
auto ans = find_subset(15, 17, {6, 8, 8, 7});
for (auto i : ans) cout << i << " ";
}*/
Compilation message (stderr)
molecules.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |