Submission #229789

# Submission time Handle Problem Language Result Execution time Memory
229789 2020-05-06T14:11:35 Z Tehillah Detecting Molecules (IOI16_molecules) C++14
Compilation error
0 ms 0 KB
#include "molecules.h"
#include <map>
#include <set>
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);
    }
    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 < l || tot > u) {
		v.clear();
		v.push_back(-1);
	}
    return v;
}

Compilation message

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