Submission #1220711

#TimeUsernameProblemLanguageResultExecution timeMemory
1220711lopkusJob Scheduling (CEOI12_jobs)C++20
100 / 100
112 ms5704 KiB
#include <bits/stdc++.h>

int main() {

  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);

  int n, d, m;
  std::cin >> n >> d >> m;
  std::vector<int> a(m + 1);
  for(int i = 1; i <= m; i++) {
    std::cin >> a[i];
  }
  std::sort(a.begin() + 1, a.end());
  for(int i = 1; i <= m; i++) {
    //std::cout << a[i] << " ";
  }
  //std::cout << "\n";
  int l = 1, r = m, ans = - 1;
  while(l <= r) {
    int mid = (l + r) / 2;
    std::deque<int> st;
    for(int i = 1; i <= mid; i++) {
      st.push_back(a[i]);
    }
    int ok = 1;
    for(int i = mid + 1; i <= m; i++) {
      int old = st.front();
      int New = std::max(old + 1, a[i]);
      if(New > a[i] + d) {
        ok = 0;
        break;
      }
      st.push_back(New);
      st.pop_front();
    }
    if(ok) {
      r = mid - 1;
      ans = mid;
    }
    else {
      l = mid + 1;
    }
  }
  std::cout << ans << "\n";
  for(int i = 1; i <= n; i++) {
    std::cout << 0 << "\n";
  }
}

/**

8 2 12
1 2 4 2 1 3 5 6 2 3 6 4

**/
#Verdict Execution timeMemoryGrader output
Fetching results...