# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
240244 | 2020-06-19T00:17:39 Z | Amy313 | Detecting Molecules (IOI16_molecules) | C++14 | 0 ms | 0 KB |
#include "molecules.h" #include <bits/stdc++.h> using namespace std; std::vector<int> find_subset(int l, int u, std::vector<int> w) { vector<pair<int, int> >M; vector<int> A; int s = 0, n = w.size(), c; for(int i=0; i<w.size(); i++) { M.push_back(make_pair(w[i], i)); } sort(M.begin(), M.end()); A.clear(); if(M[0].first>u) { return A; } int p1 = 0; p2 = 0; s = M[p2].first; for(int i=0; i<n; i++) { if(s>u) { s-=M[p1].first; s+=M[p2].first; p1++; p2++; } else { if(s>=l and s<=u) { break; } else { s+=M[p2].first; p2++; } } } if(s>u or s<l) { return A; } else { for(int i=p1; i<p2; i++) { A.push_back(M[i].second); } return A; } }