Submission #1148801

#TimeUsernameProblemLanguageResultExecution timeMemory
1148801LinkedArrayInspections (NOI23_inspections)C++17
0 / 100
1 ms964 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define pb push_back
#define int ll

vector<int> l, r, s, last_run, machine_run_list, dist;

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

  int n, m, q, i, day, task, machine, past_days;

  cin >> n >> m >> q;

  l = vector<int>(m + 1);
  r = vector<int>(m + 1);
  for (i = 1; i <= m; i++) {
    cin >> l[i] >> r[i];
    for (machine = l[i]; machine <= r[i]; 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());

  s = vector<int>(q + 1);
  for (i = 1; i <= q; i++) {
    cin >> s[i];

    auto it = lower_bound(dist.begin(), dist.end(), s[i]);
    while (!(*it >= s[i])) {
      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...