#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int num[200005];
using namespace std;
int main()
{
int n, k, q;
while (cin>>n>>k>>q)
{
int l, r;
memset(num, 0, sizeof(num));
for (int i = 0; i<n; i++)
{
cin >> l >> r;
num[l]++;
num[r + 1]--;
}
memset(c, 0, sizeof(c));
for (int i = 1; i <= 200000; i++)
{
num[i] += num[i - 1];
c[i] += c[i - 1] + (num[i] >= k);
}
for (int i = 0; i<q; i++)
{
cin >> r >> l;
cout << c[l] - c[r - 1] << endl;
}
}
return 0;
}
CodeForces B. Karen and Coffee
最新推荐文章于 2018-10-28 11:32:54 发布
本文介绍了一种使用差分数组和前缀和优化区间查询问题的算法。通过输入左边界和右边界来更新数组,并利用前缀和计算指定区间内大于等于特定值的元素数量,最后实现了快速区间查询。
917

被折叠的 条评论
为什么被折叠?



