# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1271862 | kiteyu | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 328 KiB |
#include<bits/stdc++.h>
#include "molecules.h"
#define fi first
#define se second
using namespace std;
using ll=long long;
const int N=2e5;
pair<ll,int>a[N+5];
vector<int> find_subset(int l,int u,vector<int> w){
int n=(int)w.size();
for(int i=0;i<n;++i){
a[i].fi=w[i];
a[i].se=i;
}
sort(a,a+n);
// for(int i=0;i<n;++i){
// cout<<a[i].fi<<' '<<a[i].se<<'\n';
// }
int i=n-1;
ll s=0;
vector<int>v;
for(;i>=0;--i){
s+=a[i].fi;
v.push_back(i);
if(s>=l) break;
}
// for(int i:v) cout<<i<<' '<<a[i].se<<'\n';
// cout<<'\n';
i--;
int j=0;
for(;i>=0;--i){
if(j>=(int)v.size())break;
if(l<=s&&s<=u) break;
s-=a[v[j]].fi;
v[j]=i;
j++;
s+=a[i].fi;
}
if(l<=s&&s<=u){
for(int &i:v) i=a[i].se;
return v;
}
v.clear();
return v;
}
//int n,l,u;
//vector<ll> w;
//
//
//int main(){
// cin>>l>>u;
// for(int x;cin>>x;++n){
// w.push_back(x);
// }
// vector<int> ans=find_subset(l,u,w);
// for(int i:ans) cout<<i<<' ';
// return 0;
//}
Compilation message (stderr)
# | 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... |