Submission #1148808

#TimeUsernameProblemLanguageResultExecution timeMemory
1148808LinkedArrayInspections (NOI23_inspections)C++17
29 / 100
2128 ms1114112 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define pb push_back

vector<int> machine_run_list, last_run, dist;

signed main () {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);

  int n, m, q, i, task, machine, past_days, day, l, r;
  long long s;

  cin >> n >> m >> q;

  for (i = 1; i <= m; i++) {
    cin >> l >> r;
    for (machine = l; machine <= r; machine++) {
      machine_run_list.push_back(machine);
    }
  }

  last_run = vector<int>(n + 1, -1);
  day = 1;
  for (auto machine : machine_run_list) {
    if (last_run[machine] == -1) {
      // it has never been ran
      last_run[machine] = day;
      day++;
      continue;
    }

    past_days = day - last_run[machine] - 1;
    dist.push_back(past_days);
    last_run[machine] = day;
    day++;
  }
  sort(dist.begin(), dist.end());

  for (i = 1; i <= q; i++) {
    cin >> s;
    if (s > machine_run_list.size()) {
      cout << "0 ";
      continue;
    }

    auto it = lower_bound(dist.begin(), dist.end(), s);
    while (it < dist.end() && !(*it >= s)) {
      it++;
    }
    if (it >= dist.end()) {
      cout << "0 ";
      continue;
    }
    cout << dist.size() - (it - dist.begin()) << " ";
  }
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...