# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
160004 | Berted | Detecting Molecules (IOI16_molecules) | C++14 | 81 ms | 8424 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 <iostream>
#include <algorithm>
#define ll long long
#define pii pair<ll,ll>
#define fst first
#define snd second
#define pub push_back
using namespace std;
vector<pii> dt;
vector<int> rs;
vector<int> find_subset(int l, int u, vector<int> w) {
dt.push_back({0,-1});
for (int i=0;i<w.size();i++) {dt.push_back({w[i],i});}
sort(dt.begin(),dt.end());
if (dt.back().fst>=l)
{
auto it = lower_bound(dt.begin(),dt.end(),make_pair((ll)l,(ll)0));
if (it->fst <= u) {rs.push_back(it->snd);}
}
else
{
for (int i=1;i<=w.size();i++)
{
dt[i].fst += dt[i-1].fst;
}
for (int i=0;i<=w.size();i++)
{
auto it = lower_bound(dt.begin(),dt.end(),make_pair(l+dt[i].fst,(ll)0));
if (it!=dt.end())
{
if (it->fst <= u + dt[i].fst)
{
int idx = it - dt.begin();
for (int j=i+1;j<=idx;j++)
{
rs.push_back(dt[j].snd);
}
break;
}
}
else {break;}
}
}
return rs;
}
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... |