Submission #200870

#TimeUsernameProblemLanguageResultExecution timeMemory
200870oofsauceDetecting Molecules (IOI16_molecules)C++14
19 / 100
39 ms26488 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;

int l;
int u;
vector<int> weights;

vector<vector<bool>> visited;
vector<int> ans;

bool recurse(int idx, int w) {
  if(w <= u && w >= l) return true;
  if(idx >= weights.size()) return false;
  if(visited[idx][w]) return false;

  if(recurse(idx+1, w)) return true;
  if(recurse(idx+1, w+weights[idx])) {
    ans.push_back(idx);
    return true;
  }
  visited[idx][w] = true;
  return false;
}

vector<int> find_subset(int l_, int u_, vector<int> weights_) {
  l = l_;
  u = u_;
  weights = weights_;

  visited.resize(10000, vector<bool>(10000,false));

  recurse(0,0);

  return ans;
}

Compilation message (stderr)

molecules.cpp: In function 'bool recurse(int, int)':
molecules.cpp:15:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(idx >= weights.size()) return false;
      ~~~~^~~~~~~~~~~~~~~~~
#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...