제출 #1086453

#제출 시각아이디문제언어결과실행 시간메모리
1086453Noname_1900Detecting Molecules (IOI16_molecules)C++17
100 / 100
37 ms5976 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int nbMolecules = w.size();
    vector<pair<int, int>> wTrie(nbMolecules);
    for(int i = 0; i < nbMolecules; i++)
    {
        wTrie[i] = {w[i], i};
    }
    sort(wTrie.begin(), wTrie.end());
    queue<pair<int, int>> dansBon;
    int iMol = nbMolecules;
    //int iAEnlever = nbMolecules-1;
    long long somme = 0;
    while(iMol > 0)
    {
        iMol--;
        somme += wTrie[iMol].first;
        dansBon.push(wTrie[iMol]);
       // cout << somme << endl;
        if(somme >= l)
        {
            if(somme <= u)
            {
                vector<int> res;
                while(dansBon.size())
                {
                    res.push_back(dansBon.front().second);
                    dansBon.pop();
                }
                return res;
            }
            else
            {
                somme -= dansBon.front().first;
                dansBon.pop();
            }
        }
    }
    return std::vector<int>();
}
#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...