Submission #229808

#TimeUsernameProblemLanguageResultExecution timeMemory
229808TehillahDetecting Molecules (IOI16_molecules)C++14
Compilation error
0 ms0 KiB
#include "molecules.h" #include <map> #include <set> #include <iostream> using namespace std; #define REP(i, a, b) for(int i=(int)(a); i<(int)(b); ++i) std::vector<int> find_subset(int l, int u, std::vector<int> w) { int n = w.size(); multiset<int> st; map<int, vector<int>> pos; REP(i, 0, n) { st.insert(w[i]); pos[w[i]].push_back(i); } int le = l; vector<int> v; while(!st.empty()) { auto it = st.lower_bound(l); if(it == st.end()) --it; l -= *it; assert(!pos[*it].empty()); v.push_back(pos[*it].back()); pos[*it].pop_back(); st.erase(it); if(l <= 0) break; } int tot = 0; for(int x: v) { tot += w[x]; } if(tot < le || tot > u) { v.clear(); v.push_back(-1); } return v; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:23:3: error: 'assert' was not declared in this scope
   assert(!pos[*it].empty());
   ^~~~~~
molecules.cpp:23:3: note: suggested alternative: 'qsort'
   assert(!pos[*it].empty());
   ^~~~~~
   qsort