Submission #716933

#TimeUsernameProblemLanguageResultExecution timeMemory
716933Desh03Detecting Molecules (IOI16_molecules)C++17
31 / 100
1077 ms44960 KiB
#include <bits/stdc++.h>
#include "molecules.h"
using namespace std;
vector<int> v, ans;
int n;
bool dp[10000][10001];
int lb, rb;
void recurse(int i, int sum, vector<int> k) {
    if (i == n) {
        if (sum >= lb && sum <= rb) ans = k;
        return;
    }
    if (dp[i][sum] || sum > rb || ans.size()) return;
    dp[i][sum] = 1;
    if (sum >= lb && sum <= rb) {
        ans = k;
        return;
    }
    recurse(i + 1, sum, k);
    k.push_back(i);
    recurse(i + 1, sum + v[i], k);
}
vector<int> find_subset(int l, int u, vector<int> w) {
    v = w;
    n = w.size();
    lb = l, rb = u;
    recurse(0, 0, 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...