Submission #739420

#TimeUsernameProblemLanguageResultExecution timeMemory
739420Abrar_Al_SamitDetecting Molecules (IOI16_molecules)C++17
19 / 100
3 ms724 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; const int nax = 1000; bitset<nax * 500 + 1>dp; bool taken[nax]; vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); dp[0] = 1; for(int i=0; i<n; ++i) { dp |= (dp<<w[i]); } int st = -1; for(int x=l; x<=u; ++x) { if(dp[x]) { st = x; break; } } vector<int>ret; if(st==-1) return ret; while(st) { int cand = -1; for(int i=0; i<n; ++i) if(!taken[i] && st-w[i]>=0 && dp[st-w[i]]) { if(cand==-1 || w[cand] < w[i]) cand = i; } if(cand==-1) assert(false); ret.push_back(cand); st -= w[cand]; taken[cand] = true; } return ret; }
#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...