제출 #1343341

#제출 시각아이디문제언어결과실행 시간메모리
1343341retardeDetecting Molecules (IOI16_molecules)C++20
0 / 100
1 ms344 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    vector<int> ans;
    for (int i = 0; i < (int)w.size(); i++) {
        if (w[i] >= l && w[i] <= u) {
            ans.push_back(i);
            return ans;
        }
    }

    set<int> in; for (int i = 0; i < (int)w.size(); i++) in.insert(i);
    vector<pair<int, int>> w2;
    int cs = 0;
    for (int i = 0; i < (int)w.size(); i++) {
        if (w[i] > u) continue;
        cs += w[i]; w2.push_back({w[i], i});
    }

    sort(w2.begin(), w2.end());
    // reverse(w2.begin(), w2.end());
    // int cs = 0;
    for (int i = 0; i < (int)w2.size(); i++) {
        if (cs - w2[i].first >= l) {
            cs -= w2[i].first;
            in.erase(w2[i].second);
            // ans.push_back(w2[i].second);
        }
    }

    if (!(cs <= u)) {ans.clear(); return ans;}

    vector<int> ans2; for (auto &x : in) ans2.push_back(x);
    return ans2;
}
#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...