///TRAN THAI BAO :3
#include <iostream>
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
#define maxN 200007
typedef pair<long long, int> pii;
int n, m, q;
int lastT[maxN] = {0};
map<long long, long long>cnt;
long long ans[maxN] = {0};
int curT = 0;
pii que[maxN];
bool cmp1(pii x, pii y)
{
return x.first > y.first;
}
void doOp(int l, int r)
{
for(int i = l; i <= r; i++)
{
++curT;
if(lastT[i] != 0)
cnt[curT-lastT[i]-1]++;
lastT[i] = curT;
}
cnt[-1] = 1;
}
void solve()
{
cin >> n >> m >> q;
int l, r;
for(int i = 0; i < m; i++)
{
cin >> l >> r;
doOp(l, r);
}
for(int i = 1; i <= q; i++)
{
cin >> que[i].first;
que[i].second = i;
}
sort(que+1, que+q+1, cmp1);
long long curAns = 0;
map<long long, long long>::iterator it = prev(cnt.end());
for(int i = 1; i <= q; i++)
{
while(it->first >= que[i].first)
{
curAns += it->second;
it--;
}
ans[que[i].second] = curAns;
}
for(int i = 1; i <= q; i++)
cout << ans[i] << " ";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
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... |