哎,越来越水了,囧,应该是本来就很水,这个题,真佩服想到这种算法的人,膜拜!Orz
#include<stdio.h>
const int MAXN=1000003;
const int base=10003;
int arr[MAXN]={0};
int main()
{
int N,C,Q,Mi,Ni,Ai,i,j;
scanf("%d%d%d",&N,&C,&Q);
while(C--)
{
scanf("%d%d%d",&Mi,&Ni,&Ai);
arr[Mi] += Ai;
arr[Ni+1] -= Ai;
}
for( i=1 ; i<=N ; i++ )
arr[i] += arr[i-1] ;
for( i=1 ; i<=N ; i++ )
arr[i]=(arr[i]+arr[i-1])%base;
while(Q--)
{
scanf("%d%d",&Mi,&Ni);
printf("%d\n",(arr[Ni]-arr[Mi-1]+base)%base);
}
return 0;
}