Submission #232435

#TimeUsernameProblemLanguageResultExecution timeMemory
232435UserIsUndefinedDetecting Molecules (IOI16_molecules)C++14
0 / 100
91 ms65536 KiB
#include <bits/stdc++.h>
#include "molecules.h"
using namespace std;


int mp[500005];
vector<int> idx;



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



    idx.push_back(0);

    bool ok = true;

    int k = -1;

    for (int i = 0 ; i < n ; i++){
        int sz = idx.size();
        for (int j = 0 ; j < sz ; j++){
            if (idx[j] + w[i] > 500000)continue;
            idx.push_back(idx[j] + w[i]);
            if (mp[idx[j] + w[i]] > 0)continue;
            mp[idx[j] + w[i]] = i + 2;
            if ((idx[j] + w[i] >= l)&&( idx[j] + w[i] <= u)){ok = false; k = idx[j] + w[i]; break;}
        }
        if (!ok)break;
    }



    vector<int> ans;



    if (k == -1)return ans;


    while(k){
        ans.push_back(mp[k] - 2);
        k-= w[mp[k] - 2];
    }

    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...