Submission #670034

#TimeUsernameProblemLanguageResultExecution timeMemory
670034illyakrDetecting Molecules (IOI16_molecules)C++14
31 / 100
4 ms852 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); vector<int> res; multiset<pair<int, int> > inuse; multiset<pair<int, int> > store; long long sum = 0; for (int i = 0; i < n; i++) { if (sum + w[i] <= u) { inuse.insert({w[i], i}); sum += w[i]; } else { store.insert({w[i], i}); } } while (true) { // cout << sum << " <<< " << endl; // cout << "inuse " << inuse.size() << endl; // for (auto [val, id] : inuse) // cout << val << " " << id << endl; // cout << "store " << store.size() << endl; // for (auto [val, id] : store) // cout << val << " " << id << endl; // cout << "-------------------------" << endl; if (l <= sum && sum <= u)break; if (store.empty() || inuse.empty())break; auto have = *inuse.begin(); auto can = *(--store.end()); if (have.first < can.first) { inuse.erase(inuse.begin()); sum -= have.first; store.erase(--store.end()); store.insert(have); sum += can.first; inuse.insert(can); } else { break; } } if (l <= sum && sum <= u) { for (auto [val, id] : inuse) res.push_back(id); } return res; } /** 4 15 17 6 8 8 7 4 14 15 5 5 6 6 4 10 20 15 17 16 18 */

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:47:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   47 |         for (auto [val, id] : inuse)
      |                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...