제출 #1115270

#제출 시각아이디문제언어결과실행 시간메모리
1115270ZflopDetecting Molecules (IOI16_molecules)C++14
9 / 100
1 ms588 KiB
#pragma once
#include <bits/stdc++.h>
#include <vector>
using namespace std;
const int NMAX = (int)1e3 * 2;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    vector<pair<int,int>>p;
    for (int i = 0; i < w.size();++i)
        p.push_back({w[i],i});
    sort(p.begin(),p.end());
    set<pair<int,int>>m;
    vector<int>v1;
    int s = 0;
    int i = w.size() - 1;
    for (; i >= 0 && s <= u;--i) {
        if (s >= l && s <= u) return v1;
        m.insert(p[i]);
        v1.push_back(p[i].second);
        s += p[i].first;
    }
    if (s < l) return {};
    if (s <= u && s >= l) return v1;
    int j = i;
    i = 0;
    while (i <= j) {
        auto a = *m.begin();
        s -= a.first;
        s += p[i].first;
        m.erase(a);
        m.insert(p[i]);
        if (s <= u && s >= l) {
            vector<int>v;
            while (m.size()) {
                auto b = *m.begin();
                v.push_back(b.second);
                m.erase(b);
            }
            return v;
        }
        ++i;
    }
    return {};
}

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:9:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |     for (int i = 0; i < w.size();++i)
      |                     ~~^~~~~~~~~~
#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...