// #include "molecules.h"
// #include <bits/stdc++.h>
// using namespace std;
// std::vector<int> find_subset(int l, int u, std::vector<int> w) {
// vector<int> ans;
// vector<pair<int, int>> temp;
// deque<int> dq;
// bool check = false;
// int ll=0, rr=0, sz = w.size(), lans, rans;
// long long s=0;
// for(int i=0; i<sz; i++){
// temp.push_back({w[i], i});
// }
// sort(temp.begin(), temp.end());
// while(rr<sz){
// s+=temp[rr].first;
// dq.push_back(temp[rr].second);
// while(s>u){
// s-=temp[ll++].first;
// dq.pop_front();
// }
// if(s>=l && s<=u){
// lans = ll;
// rans = rr;
// check = true;
// break;
// }
// rr++;
// }
// if(check){
// while(!dq.empty()){
// ans.push_back(dq.front());
// dq.pop_front();
// }
// return ans;
// }
// else return ans;
// return std::vector<int>(0);
// }
#include<bits/stdc++.h>
#include "molecules.h"
using namespace std;
vector<int> find_subset(int l, int r, vector<int> w) {
int n = w.size();
vector<pair<int,int>> arr;
for (int i = 0 ; i < n ; i++) {
arr.push_back({w[i], i});
}
sort(arr.begin(), arr.end());
int ll = 0;
long long int sum = 0;
vector<int> ans;
for (int i = 0 ; i < n ; i++) {
if (sum + arr[i].first > r) {
sum -= arr[ll++].first;
}
sum += arr[i].first;
if (l <= sum && sum <= r) {
for (int j = ll ; j <= i ; j++) {
ans.push_back(arr[j].second);
}
break;
}
}
sort(ans.begin(),ans.end());
return ans;
}
컴파일 시 표준 에러 (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... |