Submission #335149

#TimeUsernameProblemLanguageResultExecution timeMemory
335149blueDetecting Molecules (IOI16_molecules)C++17
69 / 100
44 ms4972 KiB
#include "molecules.h"
#include <vector>
#include <algorithm>
using namespace std;

vector<int> W;
int n;

vector<int> find_subset(int l, int u, vector<int> w)
{
    W = w;
    n = w.size();

    int i, x;

    vector<int> I(n);
    for(i = 0; i < n; i++) I[i] = i;

    sort(I.begin(), I.end(), [] (int x, int y)
    {
        return W[x] < W[y];
    });

    vector<int> res;

    int a = 0, b = -1;
    int sum = 0;
    while(1)
    {
        if(sum < l)
        {
            if(b == n-1) return res;
            else
            {
                b++;
                sum += W[I[b]];
            }
        }
        else if(sum > u)
        {
            a++;
            sum -= W[I[a-1]];
        }
        else
        {
            for(x = a; x <= b; x++) res.push_back(I[x]);
            return res;
        }
    }
}
#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...