Submission #521192

#TimeUsernameProblemLanguageResultExecution timeMemory
521192Alex_tz307Robots (IOI13_robots)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
  sort(X, X + A);
  sort(Y, Y + B);
  vector<tuple<int, int, int>> toys(T);
  for (int i = 0; i < T; ++i) {
    toys[i] = make_tuple(W[i], S[i], i);
  }
  auto check = [&](const int &m) -> int {
    sort(toys.begin(), toys.end());
    vector<bool> taken(T);
    priority_queue<pair<int, int>> pq;
    int p = 0;
    for (int i = 0; i < A; ++i) {
      while (p < T && get<0>(toys[p]) < X[i]) {
        pq.emplace(get<1>(toys[p]), get<2>(toys[p]));
        p += 1;
      }
      int cnt = 0;
      while (!pq.empty() && cnt < m) {
        taken[pq.top().second] = true;
        cnt += 1;
        pq.pop();
      }
    }
    sort(toys.begin(), toys.end(), [&](const tuple<int, int, int> &x, const tuple<int, int, int> &y) {
      return get<1>(x) < get<1>(y);
    });
    p = 0;
    int cnt = 0;
    for (int i = 0; i < B; ++i) {
      while (p < T && get<1>(toys[p]) < Y[i]) {
        cnt += !taken[get<2>(toys[p])];
        p += 1;
      }
      cnt -= m;
      if (cnt < 0) {
        cnt = 0;
      }
    }
    if (cnt == 0) {
      return true;
    }
    return false;
  };
  int l = 1, r = T, ans = -1;
  while (l <= r) {
    int mid = (l + r) / 2;
    if (check(mid)) {
      ans = mid;
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  return ans;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccXvi0xI.o: in function `main':
grader.c:(.text.startup+0x1b1): undefined reference to `putaway'
collect2: error: ld returned 1 exit status