//Inspections_NOI 2023 Finals
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m, q;
    cin >> n >> m >> q;
    //Create a vector of running machines in order
    int l, r;
    vector <int> machines;
    for (int i = 0; i < m; ++i) {
        cin >> l >> r;
        for (int k = 0; k < r - l + 1; ++k) {
            machines.push_back(l + k);
        }
    }
    //Vector of m vectors, consisting of the days to run the machine
    vector <vector<int>> days(m);
    for (int i = 0; i < machines.size(); ++i) {
        int machine = machines[i];
        days[machine-1].push_back(i+1);
    }
    //Vector of m vectors, consisting of the days between the running days
    int gap;
    vector<vector<int>> gaps(m);
    for(int i = 0; i<m ; ++i) {
        if (days[i].size() == 1) {
            gaps.at(i).push_back(-1);
        }
        else {
        for(int k = 0; k<days.at(i).size() -1; ++k){
            gap = days.at(i).at(k+1) - days.at(i).at(k);
            gaps.at(i).push_back(gap);
        }}
    }
    //Create a vector of inspections
    vector <int> inspects;
    int safeval;
    for (int i = 0; i<q; ++i) {
        int inspect = 0;
        cin >> safeval;
        for (auto machine : gaps) {
            for (auto gap : machine){
                if(gap >= safeval) inspect++;
            }
        }
        inspects.push_back(inspect);
    }
    //Output the number of inspections
    for (auto i : inspects) {
        cout << i << " ";
    }
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |