Submission #1173910

#TimeUsernameProblemLanguageResultExecution timeMemory
1173910HappyCapybaraDetecting Molecules (IOI16_molecules)C++17
9 / 100
0 ms328 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> W;

vector<int> mstv(multiset<int> ms){
    vector<int> v;
    for (int i=0; i<W.size(); i++){
        if (ms.find(W[i]) != ms.end()){
            ms.erase(ms.find(W[i]));
            v.push_back(i);
        }
    }
    return v;
}

vector<int> find_subset(int l, int u, vector<int> w){
    W = w;
    int n = w.size();
    sort(w.begin(), w.end());
    int cur = 0;
    multiset<int> res;
    for (int i=0; i<n; i++){
        res.insert(w[i]);
        cur += w[i];
        if (cur > u){
            cur -= w[i];
            res.erase(res.find(w[i]));
            while (cur < l && i < n){
                cur -= *res.begin();
                res.erase(*res.begin());
                cur += w[i];
                res.insert(w[i]);
                i++;
            }
            if (l <= cur && cur <= u) return mstv(res);
            else break;
        }
        else if (cur >= l) return mstv(res);
    }
    return {};
}

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...