#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int c,n,q;
int have[110][110][20];
void prepare()
{
for(int i=1;i<=100;i++)
for(int j=1;j<=100;j++)
for(int k=0;k<=c;k++)
{
have[i][j][k]+=(have[i-1][j][k]+have[i][j-1][k]-have[i-1][j-1][k]);
}
}
int main()
{
int x,y,s;
scanf("%d%d%d",&n,&q,&c);
memset(have,0,sizeof(have));
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&s);
have[x][y][s]++;
}
prepare();
int t,x1,x2,y1,y2;
while(q--)
{ int ans=0;
scanf("%d%d%d%d%d",&t,&x1,&y1,&x2,&y2);
for(int i=0;i<=c;i++)
{
int ad=(i+t)%(c+1);
ans+=ad*(have[x2][y2][i]+have[x1-1][y1-1][i]-have[x1-1][y2][i]-have[x2][y1-1][i]);
}
printf("%d\n",ans);
}
}
cfStar sky DP(前缀和)
最新推荐文章于 2021-06-24 15:53:38 发布