#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
#define fr first
#define se second
const int MAXV = 10;
int sft[MAXV + 10];
int32_t main() {
int n, m, q;
cin >> n >> m >> q;
vector<int> l(m), r(m);
for (int i = 0; i < m; i++) {
cin >> l[i] >> r[i];
}
for (int i = 1; i <= n; i++) {
int prv = -1;
int sum = 0;
for (int j = 0; j < m; j++) {
if ((l[j] <= i) && (i <= r[j])) {
int t = (sum + i - l[j] + 1);
if (prv != -1) {
sft[t - prv - 1]++;
}
prv = t;
}
sum += (r[j] - l[j] + 1);
}
}
deque<pii> ord;
for (int i = 0; i < q; i++) {
int s;
cin >> s;
ord.push_back({s, i});
}
sort(ord.begin(), ord.end());
int res = 0;
vector<int> ans(q);
for (int i = MAXV; i >= 0; i--) {
res += sft[i];
while (!ord.empty() && (ord.back().fr >= i)) {
ans[ord.back().se] = res;
ord.pop_back();
}
}
for (auto u : ans) cout << u << " ";
cout << "\n";
}
# | 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... |