Submission #589831

#TimeUsernameProblemLanguageResultExecution timeMemory
589831Sam_a17Detecting Molecules (IOI16_molecules)C++14
46 / 100
666 ms12576 KiB
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
// #include "molecules.h"
#include <cstdio>
using namespace std;
#define ll long long

const int N = 1e4 + 10;

int n;
bool dp[N];
bitset<N> bit[N]; 

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
  n = w.size();

  vector<int> possible{0};
  vector<int> answ;
  dp[0] = true;


  for(int i = 0; i < n; i++) {
    vector<int> to_add;

    for(int j = u - w[i]; j >= 0; j--) {
      if(dp[j]) {
        dp[j + w[i]] = true;
        bit[j + w[i]] = bit[j];
        bit[j + w[i]][i] = 1;

        if(j + w[i] >= l && j + w[i] <= u) {
          for(int k = 0; k < n; k++) {
            if(bit[j + w[i]][k]) {
              answ.push_back(k);
            }
          }
          break;
        }
      }
    }

    if(!answ.empty()) {
      break;
    }
  }
  
  return answ;
}
#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...