# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
137025 | 2019-07-26T23:05:37 Z | MladenP | Detecting Molecules (IOI16_molecules) | C++17 | 0 ms | 0 KB |
#include "molecules.h" #include <bits/stdc++.h> #define MAXN 200010 #define pb push_back using namespace std; struct mol{ int i, val; }; bool cmp(mol a, mol b) { return a.val < b.val; } mol a[MAXN]; vector<int> sol; std::vector<int> find_subset(int l, int u, std::vector<int> w) { int n = w.size(); for(int i = 0; i < n; i++) { a[i].val = w[i]; a[i].i = i; } sort(a, a+n, cmp); long long zbir = a[0].val; int L = 0, R = 1; while(L < R && L < n && R <= n)) { if(zbir < l) { zbir += a[R].val; R++; } else if(zbir > u) { zbir -= a[L].val; L++; } else { for(int k = L; k < R; k++) sol.push_back(a[k].i); return sol; } } return std::vector<int>(0); }