Submission #468570

#TimeUsernameProblemLanguageResultExecution timeMemory
468570PiejanVDCDetecting Molecules (IOI16_molecules)C++17
31 / 100
523 ms65540 KiB
#include <molecules.h>
#include <bits/stdc++.h>
using namespace std;
 
vector<int>ans;
vector<int>ww;
int ll,uu,n;
 
map<pair<int,int>,bool>mp;
 
bool dp(int i, int val) {
	if(val <= uu && val >= ll) return true;
	if(i == n) return false;
	if(mp[{i,val}]) return false;
	mp[{i,val}]=true;
	if(val+ww[i] <= uu) {
		if(dp(i+1,val+ww[i])) {
			ans.push_back(i);
			return true;
		}
	}
	if(dp(i+1,val)) {
		return true;
	}
	return false;
}
 
vector<int> find_subset(int l, int u, vector<int> w) {
	ww=w;
	n=w.size();
	ll=l,uu=u;
	if(dp(0,0))
		return ans;
	return {};
}
#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...