제출 #850624

#제출 시각아이디문제언어결과실행 시간메모리
850624vjudge1A Difficult(y) Choice (BOI21_books)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>

#include "books.h"

using namespace std;
//
// --- Sample implementation for the task books ---
//
// To compile this program with the sample grader, place:
//     books.h books_sample.cpp sample_grader.cpp
// in a single folder and run:
//     g++ books_sample.cpp sample_grader.cpp
// in this folder.
//

#define int long long

const int N = 1e5+5;

int dp[N];

int pw(int x, int y) {
  return !y ? 1 : pw(x*x, y/2) * (y%2 ? x : 1);
}

void solve(int N, int K, long long A, int S) {
    // TODO implement this function
    /*
    if (skim(2) == 42) {
        impossible();
    } else {
        answer({1, 3});
    }
    */

    int l = 1;
    int r = N;
    while (l < r) {
      int mid = (l+r)>>1;
      dp[mid] = skim(mid);
      if (pw(dp[mid], K) >= A) r = mid;
      else l = mid+1;
    }

    int x = l;
    for (int i = 1; i < K; i++) {
      if (x+i < N) dp[x+i] = skim(x+i);
      if (x-i > 0) dp[x-i] = skim(x-i);
    }

    vector<int> v;
    for (int i = x-K+1; i <= x+K-1; i++) {
      if (0 < i && i <= N) v.push_back(dp[i]);
    }
    int sz = v.size();

    for (int mask = 0; mask < (1 << sz); mask++) {
      vector<signed> ans;
      int sum = 0;
      for (int i = 0; i < sz; i++) {
        if ((mask >> i) & 1) {
          ans.push_back(v[i]);
          sum += dp[v[i]];
        }
      }
      if (A <= sum && sum <= A*2) answer(ans);
    }
    impossible();
}

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

/usr/bin/ld: /tmp/cclqAxbJ.o: in function `main':
grader.cpp:(.text.startup+0x83): undefined reference to `solve(int, int, long long, int)'
collect2: error: ld returned 1 exit status