#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int c[1048][1048],n;
int lowbit[1048];
void add(int x,int y,int d)
{
int i,j;
for(i=x;i<=n;i+=lowbit[i])
for(j=y;j<=n;j+=lowbit[j])
{
c[i][j]+=d;
}
}
int sum(int x,int y)
{
int ret=0,i,j;
for(i=x;i>0;i-=lowbit[i])
for(j=y;j>0;j-=lowbit[j])
{
ret+=c[i][j];
}
return ret;
}
int main()
{
int cmd,i,j,x,y,d,r,l,b,t;
for(i=1;i<=1024+5;i++)
lowbit[i]=i&(-i);
while(~scanf("%d",&cmd))
{
if(cmd==0)
{
scanf("%d",&n);
memset(c,0,sizeof(c));
}
else if(cmd==1)
{
scanf("%d%d%d",&x,&y,&d);
add(x+1,y+1,d);
}
else if(cmd==2)
{
scanf("%d%d%d%d",&l,&b,&r,&t);
int ans=sum(r+1,t+1)+sum(l,b)-sum(r+1,b)-sum(l,t+1);
printf("%d\n",ans);
}
else if(cmd==3) return 0;
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-09-30 00:48:08