Submission #468354

#TimeUsernameProblemLanguageResultExecution timeMemory
468354PiejanVDCDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms252 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+1);
			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...