Submission #380698

#TimeUsernameProblemLanguageResultExecution timeMemory
380698madlogicDetecting Molecules (IOI16_molecules)C++17
31 / 100
1094 ms20416 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
  int n = (int) w.size();
  vector<vector<int>> dp(u + 1);
  vector<bool> bdp(u + 1);
  bdp[0] = true;
  for (int i = 0; i < n; i++) {
    auto ndp = dp;
    auto bbdp = bdp;
    for (int j = w[i]; j <= u; j++) {
      if (!bdp[j] && bdp[j - w[i]]) {
        bbdp[j] = true;
        ndp[j] = dp[j - w[i]];
        ndp[j].push_back(i);
      }
    }  
    dp = ndp; 
    bdp = bbdp;
  }
  for (int i = l; i <= u; i++) {
    if (bdp[i]) {
      return dp[i];
    }
  }
  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...