Submission #1351952

#TimeUsernameProblemLanguageResultExecution timeMemory
1351952bbbirosDetecting Molecules (IOI16_molecules)C++20
9 / 100
1 ms344 KiB
#include "molecules.h"
#include <set>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> find_subset(int l, int u, vector<int> w)
{
    vector<pair<int,int>> a;
    for(int i=0;i<w.size();i++)a.push_back({w[i],i});
    sort(a.rbegin(),a.rend());
    set<pair<int,int>> s;
    int sum=0;
    for(int i=0;i<w.size();i++)
    {
        s.insert(a[i]);
        sum+=a[i].first;
        if(sum>=l&&sum<=u)break;
        while(sum>u)
        {
            set<pair<int,int>>::iterator it=s.lower_bound({sum-u,0});
            if(it==s.end())it--;
            sum-=it->first;
            s.erase(it);
        }
    }
    if(sum<l||sum>u)return {};
    vector<int> ans;
    for(pair<int,int> x:s)
    {
        ans.push_back(x.second);
    }
    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...