Submission #867550

#TimeUsernameProblemLanguageResultExecution timeMemory
867550StefanL2005Detecting Molecules (IOI16_molecules)C++14
19 / 100
1 ms500 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

vector<int> find_subset(int L, int R, vector<int> v)
{
    int n = v.size();
    vector<pair<int,int>> w(n);

    for (int i = 0; i < n; i++)
        w[i] = make_pair(v[i], i);
    sort(w.begin(), w.end());

    deque<int> Q;
    vector<int> result;
    ll sum = 0;

    if (w[0].first > R)
        return result;  
    if (R - L < w[n-1].first - w[0].first)
        return result;
    
    for (int i = 0; i < n; i++)
    {
        if(L <= sum && sum <= R)
            break;
        
        sum += w[i].first;
        Q.push_back(w[i].second);

        if (sum > R)
        {
            sum-= w[Q.front()].first;
            Q.pop_front();
        }
    }

    if (L <= sum && sum <= R)
        while(!Q.empty())
        {
            result.push_back(Q.front());
            Q.pop_front();       
        }

    return result;
}

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