Submission #483434

#TimeUsernameProblemLanguageResultExecution timeMemory
483434MilosMilutinovicRobots (IOI13_robots)C++14
Compilation error
0 ms0 KiB
/**
 *    author: m371
 *    created: 29.10.2021 14:34:19
**/
#include <bits/stdc++.h>

using namespace std;

int putaway(int a, int b, int t, int* x, int* y, int* w, int* s) {
  vector<int> ord_x(a);
  iota(ord_x.begin(), ord_x.end(), 0);
  sort(ord_x.begin(), ord_x.end(), [&](int i, int j) {
    return x[i] < x[j];
  });
  vector<int> ord_y(b);
  iota(ord_y.begin(), ord_y.end(), 0);
  sort(ord_y.begin(), ord_y.end(), [&](int i, int j) {
    return y[i] < y[j];
  });
  vector<int> ord_w(t);
  iota(ord_w.begin(), ord_w.end(), 0);
  sort(ord_w.begin(), ord_w.end(), [&](int i, int j) {
    return w[i] < w[j];  
  });
  vector<int> ord_s(t);
  iota(ord_s.begin(), ord_s.end(), 0);
  sort(ord_s.begin(), ord_s.end(), [&](int i, int j) {
    return s[i] < s[j];  
  });
  auto Can = [&](int S) {
    int ptr = 0;        
    set<pair<int, int>> st;
    vector<bool> was(t, false);
    for (int i = 0; i < a; i++) {
      while (ptr < t && w[ord_w[ptr]] < x[ord_x[i]]) {
        st.insert({s[ord_w[ptr]], ord_w[ptr]});
        ptr++;
      }
      int cnt = 0;
      while (!st.empty() && cnt < S) {
        auto it = prev(st.end());
        was[(*it).second] = true;
        cnt += 1;
        st.erase(it);
      }
    }
    ptr = 0;
    for (int i = 0; i < b; i++) {
      while (ptr < t && s[ord_s[ptr]] < y[ord_y[i]]) {
        if (!was[ord_y[i]]) {
          st.insert({w[ord_s[ptr]], ord_s[ptr]});
        }
        ptr++;
      }
      int cnt = 0;
      while (!st.empty() && cnt < S) {
        auto it = prev(st.end());
        was[(*it).second] = true;
        cnt += 1;
        st.erase(it);
      }
    }
    for (int i = 0; i < t; i++) {
      if (!was[i]) {
        return false;
      }
    }
    return true;
  };
  if (!Can(t)) {
    return -1;
  }
  int low = 0, high = t, ans = 0;
  while (low <= high) {
    int mid = (low + high) >> 1;
    if (Can(mid)) {
      ans = mid;
      high = mid - 1;
    } else {
      low = mid + 1;    
    }
  }
  return ans;
}

Compilation message (stderr)

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