合格数
题目 合格数
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,k,q;
int b[N],s[N];
int main()
{
cin>>n>>k>>q;
for(int i=1;i<=n;i++)
{
int l,r;
cin>>l>>r;
b[l]++;
b[r+1]--;
}
b[1]-=k;
for(int i=1;i<=N;i++)
b[i]+=b[i-1];
for(int i=1;i<=N;i++)
if(b[i]>=0)
b[i]=1;
else
b[i]=0;
// for(int i=1;i<=N;i++)
// if(b[i]<k)
// b[i]=0;
// else
// b[i]=1;
for(int i=1;i<=N;i++)
s[i]=s[i-1]+b[i];
while(q--)
{
int l,r;
cin>>l>>r;
cout << s[r] - s[l - 1] << endl;
}
return 0;
}
💬 评论