题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970
AC代码:
#include <stdio.h>
#include <string.h>
#define ll __int64
#define inf 100002
ll map[inf],h;
int main(){
int n,m,i,k,l,r,d,x,ans;
while(~scanf("%d",&n),n){
scanf("%d",&m);
memset(map,0,sizeof(map));
while(m--){
scanf("%d%d%d",&l,&r,&d);
map[l]+=d;
map[r+1]-=d;
}
for(i=2;i<n+1;i++)
map[i]+=map[i-1];
for(i=n-1;i>=1;i--)
map[i]+=map[i+1];
scanf("%d",&k);
for(i=ans=0;i<k;i++){
scanf("%I64d%d",&h,&x);
if(map[x]<h)
ans++;
}
printf("%d\n",ans);
}
return 0;
}