이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define f first
#define s second
#define pb push_back
#define pf push_front
#define pi pair<int,int>
#define vi vector<int>
vi find_subset(int l, int u, vi w){
int n= w.size();
vector<pi>hold;
for(int i =0 ; i<n; i++){
hold.pb({w[i],i});
}
ll sum =0;
int j = 0;
int i = 0;
sort(hold.begin(), hold.end());
while(j<=i &&i <=n && j<n ){
// cout <<j<<" "<<i<< " " << sum <<" "<<l<<" "<< u << endl;
if(sum>=l && sum<=u){
vi ans;
int cnt = 0;
for(int k = j ; k < i; k++){
ans.pb(hold[k].s);
cnt++;
}
sort(ans.begin(),ans.end());
return ans;
// return ans;
}
else if(sum <l){
//cout << i << " "<< j << " "<< sum <<endl;
while(sum<l&& i <n ){
sum+=hold[i].f;
i++;
}
//cout << i << " exit "<< j << " "<< sum <<endl;
}
else {
while(sum>u&& j <n ){
// cout << j << " "<< hol endl;
sum-=hold[j].f;
j++;
}
}
}
vi rv;
return rv;
}
/*
int main(){
int n,l,u;
cin >> n >> l >> u;
vi we;
int val;
for(int i = 0; i <n; i++){
cin >>val;
we.pb(val);
}
vi ans =find_subset(l,u,we);
for(int i : ans){
cout << i << " ";
}
}
*/
# | 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... |