답안 #1115253

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1115253 2024-11-20T09:31:13 Z Zflop Detecting Molecules (IOI16_molecules) C++14
컴파일 오류
0 ms 0 KB
#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;
    while (s > u && i >= 0) {
        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;
        }
    }
    return {};
}

Compilation message

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)
      |                     ~~^~~~~~~~~~
molecules.cpp:34:31: error: 'struct std::_Rb_tree_const_iterator<std::pair<int, int> >' has no member named 'second'
   34 |                 v.push_back(b.second);
      |                               ^~~~~~