Submission #798316

#TimeUsernameProblemLanguageResultExecution timeMemory
798316LiudasDetecting Molecules (IOI16_molecules)C++17
9 / 100
2 ms468 KiB
#include <bits/stdc++.h>

using namespace std;
vector<int> find_subset(int L, int R, vector<int> M){
    int N = M.size();
    bitset<500000> bits;
    bits[0] = 1;
    for(int i = 0; i < N; i ++){
        int a = M[i];
        bits |= (bits << a);
    }
    int t = 0;
    for(int i = L; i <= R; i ++){
        if(bits[i]){t = i;break;}
    }
    vector<int> p;
    for(int i = 0; i < N; i ++){
        int s = 0, id = i;
        for(int j = i; j < N; j ++){
            if(t >= M[j] && bits[t - M[j]] && s < M[j]){
                s = M[j];
                id = j;
            }
        }
        if(s){
            p.push_back(id);
            t -= s;
        }
    }
    return p;
}
#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...