Submission #1148810

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

using ll = long long;
#define pb push_back

vector<int> 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, mx_dist;
  long long s;

  cin >> n >> m >> q;

  last_run = vector<int>(n + 1, -1);
  day = 1;
  mx_dist = 0;
  for (i = 1; i <= m; i++) {
    cin >> l >> r;
    for (machine = l; machine <= r; machine++) {
      if (last_run[machine] == -1) {
        // it has never been ran
        last_run[machine] = day;
        day++;
        continue;
      }

      past_days = day - last_run[machine] - 1;
      mx_dist = max(mx_dist, past_days);
      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 > mx_dist) {
      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...