# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1001672 | vjudge1 | Detecting Molecules (IOI16_molecules) | C++17 | 1 ms | 604 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>
#pragma GCC optimize("-O3")
#define ll int
#define ld long double
#define vl vector<ll>
#define vi vector<int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define f first
#define s second
#define pb push_back
#define p_b pop_back
using namespace std;
vector<int> find_subset(int f, int u, vector<int> w) {
vi ans;
int cnt = 0, sum = 0;
for(int i = 0; i < w.size(); i++)
{
if(w[i] > u)
cnt++;
sum += w[i];
if(f <= w[i] && w[i] <= u)
{
ans.pb(i);
return ans;
}
}
if(cnt == (int)w.size() || sum < f)
return ans;
vector<pii>vect;
for(int i = 0; i < w.size(); i++)
vect.pb({w[i], i});
sort(all(vect));
for(int i = vect.size()-1; i >= 0; i--)
{
if(vect[i].f > u)
continue;
ans.pb(vect[i].s);
f -= vect[i].f;
u -= vect[i].f;
if(f <= 0)
break;
}
vl res;
if(f > 0)
return res;
reverse(all(ans));
return ans;
}
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... |