Submission #742380

#TimeUsernameProblemLanguageResultExecution timeMemory
742380oyberDetecting Molecules (IOI16_molecules)C++14
46 / 100
333 ms65536 KiB
#include "molecules.h"
#include <algorithm>

using namespace std;

vector<int> find_subset(int l, int u, vector<int> w) {
    int n = int(w.size());
    vector<vector<int>> sums(u+1, vector<int>(0));

    for (int i = 0; i < n; i++) {
        for (int j = u; j > 0; j--) {
            int k = j-w[i];
            if (k < 0) continue;
            if (int(sums[j].size()) > 0) continue;
            if (k == 0) sums[j] = {i};
            if (int(sums[k].size()) > 0) {
                sums[j] = sums[k];
                sums[j].push_back(i);
            }
        }
    }

    for (int i = l; i <= u; i++) {
        if (int(sums[i].size()) > 0) {
            return sums[i];
        }
    }

    return vector<int>(0);
}
#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...