#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define f first
#define s second
main() {
cin.tie(0)->sync_with_stdio(0);
int n, m, q;
cin >> n >> m >> q;
map<ll, ll> last {{0, 1e18}, {1e18, 1e18}};
map<ll, ll> cnt;
ll time = 0;
while (m--) {
ll l, r; cin >> l >> r; r++;
auto it = prev(last.upper_bound(l));
while (it->f < r) {
cnt[time - it->s - (l - it->f)] += min(next(it)->f, r) - max(it->f, l);
it++;
}
it = last.insert({r, prev(it)->s + (r - prev(it)->f)}).f;
last.erase(last.lower_bound(l), it);
last[l] = time;
time += r - l;
}
ll pfx = 0;
for (auto &[k, v] : cnt) {
v = (pfx += v);
}
while (q--) {
ll x; cin >> x;
cout << pfx - prev(cnt.upper_bound(x))->second << ' ';
}
}
Compilation message (stderr)
Main.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
9 | main() {
| ^~~~
# | 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... |