#include "bits/stdc++.h"
using namespace std;
#ifdef duc_debug
#include "bits/debug.h"
#else
#include "molecules.h"
#define debug(...)
#endif
vector<int> find_subset(int l, int u, vector<int> w) {
vector<int> res;
int sz = (int)w.size();
vector<int> ord(sz);
iota(ord.begin(), ord.end(), 0);
sort(ord.begin(), ord.end(), [&](const int &x, const int &y) -> bool {
return w[x] < w[y];
});
deque<int> dq;
stack<int> st;
long long sum = 0;
for(int i = 0; i < sz; ++i) {
dq.push_back(ord[i]);
sum += w[ord[i]];
if(sum > u) {
sum -= w[dq.front()];
dq.pop_front();
}
if(l <= sum and sum <= u) {
res = vector<int>(dq.begin(), dq.end());
return res;
}
if(dq.empty()) {
return vector<int>();
}
}
return vector<int>();
}
#ifdef duc_debug
void solve() {
int n, l, u; cin >> n >> l >> u;
vector<int> w(n);
for(auto &i:w) {
cin >> i;
}
vector<int> res = find_subset(l, u, w);
long long x = 0;
for(auto i:res) {
x += w[i];
}
if(l <= x and x <= u) {
cout << "YES\n";
for(auto i:res) {
cout << i << " ";
}
} else {
cout << "NO\n";
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}
#endif
컴파일 시 표준 에러 (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... |