Submission #1198881

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

#define int long long

vector<signed> W;

vector<signed> mstv(multiset<int> ms){
    vector<signed> 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<signed> find_subset(signed l, signed u, vector<signed> w){
    int n = w.size();
    W = w;
    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 -= *res.begin();
            res.erase(res.find(w[i]));
            int j = i;
            if (res.empty()) return {};
            while (cur < l && j < n){
                cur -= *res.begin();
                res.erase(res.begin());
                cur += w[j];
                res.insert(w[j]);
                j++;
            }
            if (l <= cur && cur <= u) return mstv(res);
            else return {};
        }
        else if (l <= cur && cur <= u) 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...