| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1298406 | baldy | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
vector<int> find_subset(int l,int u,vector<int> initial) {
int n = (int)initial.size();
sort(initial.begin(),initial.end());
int sum = 0;
int j = 0;
set<int> ans;
for(int i = 0;i < n;i++){
sum+=initial[i];
ans.insert(i+1);
while(j <= i && (sum <= u && sum >= l)){
sum = sum - initial[j];
ans.erase(j+1);
j++;
}
}
vector<int> final(ans.begin(),ans.end());
return final;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin >> t;
while (t--){
int n,l,u; cin >> n >> l >> u;
vector<int> v(n);
for(int i =0;i < n;i++) cin >> v[i];
vector<int> ans = find_subset(l,u,v);
for(int i= 0;i < (int) ans.size();i++) cout << ans[i] << " ";
cout << endl;
}
}
