Submission #798169

#TimeUsernameProblemLanguageResultExecution timeMemory
798169LiudasDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms340 KiB
#include <bits/stdc++.h>

using namespace std;
vector<int> find_subset(int L, int R, vector<int> M){
    map<int, queue<int>> places;
    int N = M.size();
    for(int i = 0; i < N; i ++){
        places[M[i]].push(i);
    }
    map<int, int> sums;
    sums[0] = 0;
    for(int i : M){
        map<int, int> sums1;
        for(auto [l ,r] : sums){
            sums1[l + i] = i;
        }
        for(auto [l, r] : sums1){
            sums[l] = r;
        }
    }
    vector<int> p;
    for(int i = L; i <= R; i ++){
        if(sums.find(i) != sums.end()){
            int t = i;
            while(t){
                int pp = sums[t];
                int a = places[pp].front();
                places[pp].pop();
                p.push_back(a);
                t -= pp;
            }
            return p;
        }
    }
    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...