Submission #137026

#TimeUsernameProblemLanguageResultExecution timeMemory
137026MladenPDetecting Molecules (IOI16_molecules)C++17
100 / 100
70 ms5624 KiB
#include "molecules.h"
#include <bits/stdc++.h>
#define MAXN 200010
#define pb push_back

using namespace std;

struct mol{
    int i, val;
};

bool cmp(mol a, mol b) { return a.val < b.val; }

mol a[MAXN];
vector<int> sol;

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

    for(int i = 0; i < n; i++) {
        a[i].val = w[i]; a[i].i = i;
    }
    sort(a, a+n, cmp);
    long long zbir =  a[0].val;
    int L = 0, R = 1;
    while(L < R && L < n && R <= n) {
        if(zbir < l) {
          zbir += a[R].val;
          R++;
        } else if(zbir > u) {
          zbir -= a[L].val;
          L++;
        } else {
            for(int k = L; k < R; k++) sol.push_back(a[k].i);
            return sol;
        }
    }

    return std::vector<int>(0);
}
#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...