제출 #1264819

#제출 시각아이디문제언어결과실행 시간메모리
1264819ArtDetecting Molecules (IOI16_molecules)C++20
컴파일 에러
0 ms0 KiB
//      - Art -
#include <bits/stdc++.h>

#define el              cout << '\n'

#define FOR(i, a, b)    for (int i = (a), _b = (b); i <= _b; ++i)
#define REV(i, b, a)    for (int i = (b), _a = (a); i >= _a; --i)
#define REP(i, c)       for (int i = 0, _c = (c); i < _c; ++i)

const int N = 2e5 + 7;

using namespace std;

int idx[N];

int find_subset(int l, int r, int w[], int n, int result[]) {
    int it = 0;
    long long sum = 0;
    REP (i, n) {
        idx[i] = i;
    }
    sort(idx, idx + n, [&](int i, int j) {
        return w[i] < w[j];
    });
    REP (i, n) {
        sum += w[idx[i]];
        while (sum > r) {
            sum -= w[idx[it++]];
        }
        if (l <= sum) {
            int sz = 0;
            FOR (j, it, i) {
                result[sz++] = idx[j];
            }
            return i - it + 1;
        }
    }
    return 0;
}

#ifdef ONLINE_JUDGE

int w[N], result[N];

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n, l, r;
    cin >> n >> l >> r;
    REP (i, n) {
        cin >> w[i];
    }
    int m = find_subset(l, r, w, n, result);
    cout << m, el;
    REP (i, m) {
        cout << result[i] << ' ';
    }

    return 0;
}
#endif // ONLINE_JUDGE

컴파일 시 표준 에러 (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
      |         ^~~~
/usr/bin/ld: /tmp/ccF4qKdN.o: in function `main':
grader.cpp:(.text.startup+0x173): undefined reference to `find_subset(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status