제출 #1235281

#제출 시각아이디문제언어결과실행 시간메모리
1235281yixuan19Detecting Molecules (IOI16_molecules)C++20
100 / 100
39 ms7736 KiB
#include "molecules.h"
#include <iostream>
#include <algorithm>
#include <queue>
#define ll long long 

using namespace std;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    vector<int> res;
    vector<int> empty;
    priority_queue<pair<ll,int> > seen;
    vector<pair<int,int> >vals;
    for (int i = 0; i < w.size(); ++i){
        vals.push_back(make_pair(w[i],i));
    }
    sort(vals.rbegin(), vals.rend());
    ll cnt = 0;
    int i = 0;
    while (i < w.size()){
        while (cnt < l && i < w.size()){
            //cout<<"added "<<vals[i].first<<vals[i].second<<endl;
            cnt+=vals[i].first;
            seen.push(make_pair(vals[i].first,vals[i].second));
            i++;
        }
        while (cnt > u && !seen.empty()){
            cnt -= (seen.top().first);
            seen.pop();
        }
        if (cnt >= l && cnt <= u) break;
    }
    
    if (cnt < l || cnt > u) return empty;
    while (!seen.empty()){
        res.push_back(seen.top().second);
        seen.pop();
    }
    return res;
}

컴파일 시 표준 에러 (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...