Submission #134967

#TimeUsernameProblemLanguageResultExecution timeMemory
134967antimirageDetecting Molecules (IOI16_molecules)C++14
69 / 100
457 ms2808 KiB
#include "molecules.h"
#include <bits/stdc++.h>

#define pb push_back

using namespace std;

const int N = 5e5 + 2;

bitset <N> dp, sup;

int p[N];

vector <int> ans;

vector<int> find_subset(int l, int r, vector<int> w) {
	
	dp[0] = 1;
	
	for (int i = 0; i < (int)w.size(); i++) {
		sup = dp;
		dp |= (dp << w[i]);
		sup ^= dp;
		for (int j = sup._Find_first(); j < N; j = sup._Find_next(j)) {
			p[j] = i;
		}
	}
	for (int i = l; i <= r; i++) {
		if (dp[i]) {
			while (i > 0) {
				ans.pb(p[i]);
				i -= w[p[i]];
			}
			return ans;
		}
	}
	return ans;
}
#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...