# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
206351 | TAISA_ | Detecting Molecules (IOI16_molecules) | C++14 | 72 ms | 8800 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "molecules.h"
#include <bits/stdc++.h>
#define all(v) v.begin(),v.end()
#define eb emplace_back
using namespace std;
using ll=long long;
using P=pair<ll,ll>;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
vector<P> ws;
for(int i=0;i<w.size();i++){
ws.eb(w[i],i);
}
sort(all(ws));
int n=w.size();
vector<ll> sum(n+1);
for(int i=0;i<n;i++){
sum[i+1]=sum[i]+ws[i].first;
}
for(ll k=1;k<=n;k++){
ll mi=sum[k],ma=sum[n]-sum[n-k];
if(l<=ma&&mi<=u){
if(ma<=u){
vector<int> v;
for(int j=n-k;j<n;j++){
v.eb(ws[j].second);
}
return v;
}
ll s=mi;
for(int i=k;i<n;i++){
if(l<=s&&s<=u){
vector<int> v;
for(int j=i-k;j<i;j++){
v.eb(ws[j].second);
}
return v;
}
s+=ws[i].first-ws[i-k].first;
}
}
}
return vector<int>(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... |